Skip to content

This project is a command-line interface (CLI) application for managing campus events. It provides different functionalities based on user roles: Attendee, Organizer, and Admin.

Notifications You must be signed in to change notification settings

HoemanG/CEMS-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Project Documentation: Campus Event Management System (C.E.M.S)

1. Introduction

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.

2. User Roles and Features

The system's functionality is divided based on the user's role.

2.1. Admin

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.

2.2. Organizer

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.

2.3. Attendee

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.

3. System Architecture

The system's architecture is defined by UML diagrams, which are located in the ../Document/ directory.

3.1. Flowchart

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.

Flowchart

3.2. Class Diagram

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.

Class Diagram

3.3. State Diagrams

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. Attendee State Diagram

  • Organizer State Diagram: Shows the flow for an organizer managing their events and attendees. Organizer State Diagram

  • Admin State Diagram: Shows the flow for an admin overseeing the entire system. Admin State Diagram

4. How to Run the Application

  1. Open a terminal or command prompt.
  2. Navigate to the src_code directory within the project folder.
  3. Make sure you have Python installed on your system.
  4. Run the application with the following command:
    python main.py
  5. 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).]

5. File Structure

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

About

This project is a command-line interface (CLI) application for managing campus events. It provides different functionalities based on user roles: Attendee, Organizer, and Admin.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages