Name | Roll No. |
---|---|
Yelisetty Karthikeya S M | 21CS30060 |
Vonteri Varshith Reddy | 21CS10081 |
Manaswi Raj | 21CS10088 |
Thota Kesava Chandra | 21CS30056 |
Parthiv Reddy | 21CS10006 |
Design a web application for a web-based system for managing a university cultural festival. You may use the schema designed in Assignment 2. You may use additional relations and attributes.
- External participant registrants
- Student registrants
- Volunteers
- Organizers of events
- Database Administrators: add/delete users
The system is required to support the following workflow:
- External participants should be able to create an account and browse/search the events and schedules. They should also be able to register for particular events and know about the winners of the events in real-time. Access to logistics like accommodation and food should be provided through the same web application.
- Students should be able to browse/search the event schedules and register for the events. They should also be able to register as volunteers.
- Organizers should be able to create an account and browse the event details. They should also be able to view/search the volunteer and logistics details.
- Database administration โ should be able to add/delete new users (bonus point: implement data security policy with suitable access control)
- Browser-based web interface with front-end form interfaces
- Connectivity to the back-end database
- Triggers and procedures to support the workflow
- Postgresql or MySQL may be used as a backend database
- Java/PHP/python or any other language may be used as frontend Deliverable:
- A demonstration of the system in the lab
- A report outlining the design including (a) schemas, (b) triggers, (c) queries, (d) forms. The assignment will be evaluated based on the number of functionalities implemented
- https://github.com/rafsaf/minimal-fastapi-postgres-template/tree/main?tab=readme-ov-file
- https://www.db-book.com/slides-dir/PDF-dir/ch9.pdf
Warning
Do not panic after seeing the sheer amount of code, it is just a basic setup for the backend most of which is boilerplate code.
- ./backend/app/models.py - Contains the Database Models using Pydantic
- ./backend/app/schemas/ - Contains the Pydantic Schemas for Request and Response
- ./backend/app/core/config.py - Contains the Configuration for the App, like Environment Variables, Allowed Hosts, etc.
- ./backend/app/api/endpoints/ - Create a new file for every new set of endpoints you want to create
- ./backend/app/api/api.py - Contains the APIRouter, needs to be updated for every new endpoints file you create
Go to Guide To get an overview of setup and usage of this backend