Skip to content

Documentation

ceron edited this page Sep 6, 2024 · 7 revisions

QuickPass is an app designed to streamline event access and bookings by allowing users to open doors for events using their mobile devices. This application integrates with a backend server to manage users, bookings, and accommodations.

System Architecture

Class Diagram

The core system is designed using Object-Oriented principles and consists of several key classes:

  • User: Represents a person using the app, including their contact details.
  • Occasion: An event or booking that a user can attend.
  • Event: A specific instance of an occasion with a date, time, and location.
  • Booking: A user's reservation for an event, including entry and exit times.
  • Accommodation: The venue or house associated with the event or booking.

image

Entity Relationship Diagram

The detailed database structure showing the relationship between users, events, bookings, and accommodations:

Key Entities

  • User: Manages user information, including email and contact number. Users can create sessions and participate in events and bookings.
  • Session: Stores session-related data such as the user's device and session status.
  • Event: Contains details of specific events such as start date, end date, and location.
  • Booking: Represents a user's reservation for an event, with entry and exit dates.
  • Accommodation: Holds information about the accommodation related to an event, such as address and type (house or not).
  • Logs: Tracks user actions within events (e.g., entry and exit times).
  • States: Defines the current state of the user concerning an event or booking. db

Deployment Diagram

The QuickPass system architecture includes:

  • Cellphone Device (MobileApp.apk): Used by users to book events and unlock doors.
  • Desktop Device (Admin Page): Used by admins to manage the system via the web browser interface.
  • Backend Server: Hosts the backend API and PostgresDB database in a Docker environment to handle requests and store data.

image

API Endpoints

The backend API interacts with both the mobile app and admin panel. Below are key API endpoints:

Endpoint Method Description
/api/users GET Retrieve list of users
/api/events GET Retrieve list of events
/api/bookings POST Create a new booking
/api/bookings/:id DELETE Delete a booking by ID

Clone this wiki locally