This document provides a comprehensive overview of the Campus Event Management System (C.E.M.S). C.E.M.S is a command-line interface (CLI) application designed to streamline the management of campus events. The system provides tailored functionalities for three distinct user roles: Attendees, Organizers, and Admins.
The system's functionality is divided based on the user's role.
Admins have the highest level of access and control over the system.
- View All Events: Admins can view a comprehensive list of all events.
- [SCREENSHOT: A terminal showing the admin's view of all listed events.]
- Add and Delete Events: Admins can add new events to the system and remove existing ones.
- [SCREENSHOT: The interface for an admin adding a new event, showing the required input fields.]
- Monitor Event Capacity: Admins can check the current attendance and capacity for any event.
- View Attendance Statistics: The system can calculate and display attendance statistics, such as which events have the highest and lowest attendance.
- [SCREENSHOT: The admin view displaying attendance statistics for various events.]
- Export Reports: Admins can export a statistical report of all events to a CSV file.
Organizers are responsible for managing their own events.
- View and Manage Their Events: Organizers can view a list of events they have created, and they can add or delete their events.
- [SCREENSHOT: The organizer's dashboard, showing a list of their events.]
- Manage Attendees: Organizers can view the list of attendees registered for their events and can remove attendees if necessary.
- [SCREENSHOT: The interface for an organizer viewing the attendees of a specific event.]
- Export Reports: Organizers can export a statistical report for their own events to a CSV file.
Attendees are the end-users who participate in the events.
- Event Discovery: Attendees can search for available events by event code or name.
- [SCREENSHOT: The attendee's view for searching for an event.]
- Event Registration: Attendees can register for events they are interested in.
- [SCREENSHOT: The process of an attendee registering for an event.]
- View Registered Events: Attendees can see a list of all the events they have registered for.
- Login Options: Users can log in with a student ID or as a guest.
The system's architecture is defined by UML diagrams, which are located in the ../Document/ directory.
The main application flow begins at main.py. The user is prompted to select their role. Based on the selection, the system transitions to the appropriate state and displays the corresponding user interface.
The system is composed of four main classes: Event, Admin, Organizer, and Attendee. The Event class is central, holding all event-related information. The Admin, Organizer, and Attendee classes define the roles and interactions within the system.
State diagrams detail the specific workflows and state transitions for each user role after logging in.
-
Attendee State Diagram: Shows the flow for an attendee searching, registering, and viewing events.
-
Organizer State Diagram: Shows the flow for an organizer managing their events and attendees.
-
Admin State Diagram: Shows the flow for an admin overseeing the entire system.
- Open a terminal or command prompt.
- Navigate to the
src_codedirectory within the project folder. - Make sure you have Python installed on your system.
- Run the application with the following command:
python main.py
- The application will start, and you will be prompted to select your role.
- [SCREENSHOT: The initial screen of the application, prompting the user to select a role (Admin, Organizer, Attendee).]
The src_code directory contains the core application files:
.
├── classes/
│ ├── admin.py
│ ├── attendees.py
│ ├── events.py
│ └── organizers.py
├── data/
│ ├── admins.json
│ ├── atds.json
│ ├── events.json
│ └── orgs.json
│ └── *.csv
├── text_art/
│ ├── admin.txt
│ ├── attendee.txt
│ └── organizer.txt
├── admin_UI.py
├── attendee_UI.py
├── organizer_UI.py
├── main.py
├── path_utils.py
└── README.md