Event-CRUD-Flask-python3-API/README.md

68 lines
2 KiB
Markdown

### 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)