Stack:

  1. Django
  2. DRF
  3. django-fcm + APS(Advanced Python Scheduler)(easier to handle) OR Google Calendar API (which needs OAuth2.0)

Functionality:

  1. Create Events
  2. Subscribe to topics and Events
  3. Notify users about starting time
  4. Create Attendance list with scan to confirm presence
  5. Analytics on the event to the creator

Models:

  1. Event
    1. Event Name
    2. Start timestamp
    3. End timestamp
    4. ForeignKey to Tag
    5. Location
    6. Seats
    7. Contact email
    8. Contact phone number
    9. Registration deadline
  2. Tag
    1. Name
    2. User
  3. Attendee(linked to the SmartCampus user)
    1. User
    2. Event
    3. Event status = [INTERESTED, GOING, DEFAULT=Not Going]
    4. Event rating
    5. Event feedback

Procedure 1.0:

Event creation → Assign tags → Notify event to subscribers → Choose interested/going → Users notified using APS + FCM on the backend before a fixed time for the event.

Cons: Slightly larger code

Procedure 2.0: