Users will be able to register, login, out, to attend to events, and to unattend to events. Events CRUD API Flask-python3
Find a file
2024-01-09 11:03:16 +02:00
middlewares dding event_user table 2024-01-08 12:19:55 +02:00
migrations added notifyer 2024-01-09 11:01:39 +02:00
routes remove attend routes and handlers 2024-01-09 11:03:16 +02:00
services remove attend routes and handlers 2024-01-09 11:03:16 +02:00
.gitignore first commit - CRUD python API for Events 2024-01-04 14:21:37 +02:00
app.py fixing naming 2024-01-09 10:25:38 +02:00
config.py add users table + authentication 2024-01-07 13:28:49 +02:00
models.py added notifyer 2024-01-09 11:01:39 +02:00
README.md added notifyed col to db 2024-01-08 21:12:29 +02:00
requirements.txt remove attend routes and handlers 2024-01-09 11:03:16 +02:00

Flask-API managing Users And Events

A RESTful API that manages events, offering users the ability to schedule, retrieve, update, delete, and be reminded of events with additional advanced features.

Flask-API - Interface

  • The User Will be able to retrieve upcomming event/s

    • sort by
      • popularity
      • date
    • filter by:
      • location
  • The User will be abale to create/update a new event

  • The User will be able to login/out

  • The User can Attend/UnAttend to an event

  • The Anonymous User will be able to create a new user

  • Event:

    • (Auth Users) An event is an upcomming Party/Concert/Sport event/etc. It is tied to a user that created this event.
  • Authentication:

    • The User will be able to login:
      • The API will generate a JWT token and set the userId inside the Flask session.
      • The API will return the JWT token in the response cookie header.

Backend-reminder

  • The Users will be able to be reminded of upcoming events.
  • The backend will Send reminders 30 minutes before the event's scheduled time.

Database

  • Sqlite(for simplicity use)

Schema

  • User -

    • Id (UUID, primary key)
    • Name (string, required)
    • Email (string, required, unique)
    • Password_hash (string, required)
    • location (string, required)
  • Event

    • Id (int, primary key)
    • Title (string, required)
    • Description (string, required)
    • Location (string, required)
    • Deleted (bool, required)
    • DueDate (string, required)
    • User_id (string, required, foreign key)
  • User Event Association (Many to Many)

    • User_id (string, required, foreign key)
    • Event_id (Integer, required, foreign key)
    • Notifiyed Made (bool, default: false)

API EndPoints

  • GET /events (Optional: ?['location' = String, 'sort_by' = Enum('date'/'popularity'/'creation' ) ])
  • GET /events/{id} - returns a single event
  • POST /events - create a new event (Auth)
  • PUT /events/{id} - update an event (Auth + authorized)
  • DELETE /events/{id} - (Soft)delete an event (Auth + authorized)