Skip to content

A simple free ticketing system developed for college societies to help them reduce costs for hosting events.

License

Notifications You must be signed in to change notification settings

mykbit/Hassle-Free-Ticketing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hassle-Free-Ticketing

Routes | Building | Interaction

This project was developed as part of the Trinity College Dublin Hackathon. Our software introduces a free ticketing system, relieving college societies of extra charges for ticketing processes for various events. Event organizers can easily keep track of those who express interest in the event and who actually purchase tickets. This is achieved by our custom-made algorithm, which scrapes the .csv formatted bank statement, identifies the payers, and updates the database accordingly. The fact that our solution is designed to be self-instantiating means that event organizers can safely upload their bank statements without worrying about sharing them with third-party platforms.

Routes

Create new/update existing users and/or events

POST /register (register a new user)
Parameters

None

Responses
http code content-type response
201 application/json {"code":"201","error": None,"message": "client registered successfully"
400 application/json {"code":"400","error":"Bad Request","message": "Please provide client details"}
500 application/json {"code":"500","error": "Internal server error","message": "An error occurred"}
POST /login (log in using existing credentials)
Parameters

None

Responses
http code content-type response
201 application/json {"code":"201","error": None,"message": "client logged in successfully"
400 application/json {"code":"400","error":"Bad Request","message": "Please provide client details"}
401 application/json {"code":"401","error": "Unauthorized","message": "Invalid email or password"}
500 application/json {"code":"500","error": str(e),"message": "An error occurred"}
POST /event/{event_id}/register (register for an existing event)
Parameters
name type data type description
current_user required Object Object containing current user data
event_id required int Event ID
Responses
http code content-type response
201 application/json {"code":"201","error": None,"message": "Client registered for event successfully"
500 application/json {"code":"500","error": str(e),"message": "Failed to register client for event"}
POST /create-event (create a new event)
Parameters
name type data type description
current_user required Object Object containing current user data
Responses
http code content-type response
201 application/json {"code":"201","error": None,"message": "Event created successfully"
400 application/json {"code":"400","error":"Bad Request","message": "Please provide event details"}
500 application/json {"code":"500","error": "Internal server error","message": "An error occurred"}
POST /bank-statement/{event_id} (upload a bank statement for processing)
Parameters
name type data type description
current_user required Object Object containing current user data
event_id required int Event ID
Responses
http code content-type response
200 application/json {"code":"200","error": None,"message": "File uploaded successfully"
400 application/json {"code":"400","error":"Bad Request","message": "File expected"}
400 application/json {"code":"400","error":"Bad Request","message": "CSV file expected"}
400 application/json {"code":"400","error":"Bad Request","message": "CSV structure is invalid"}

Listing existing events

GET /event/{event_id} (retrieve the event page)
Parameters
name type data type description
current_user required Object Object containing current user data
event_id required int Event ID
Responses
http code content-type response
200 application/json {"code":"200","error": None,"message": "Event retrieved successfully"
400 application/json {"code":"400","error":"Bad Request","message": "Please provide event id"}
404 application/json {"code":"404","error":"Bad Request","message": "Event not found""}

Testing Routes (Subject to utilization or removal from the codebase)

GET / (test the functionality of the server)
Parameters

None

Responses
http code content-type response
200 application/json {"code":"200","error": None,"message": "Welcome to the API"
GET /table (check the contents of the database tables)
Parameters

None

Responses
http code content-type response
200 application/json {"code":"200","error": None,"message": "Table retrieved successfully"
GET /session (check the functionality of the authorization)
Parameters

None

Responses
http code content-type response
200 application/json {"code":"200","error": None,"message": "Session retrieved successfully"
GET /user (check the data of the current user)
Parameters

None

Responses
http code content-type response
200 application/json {"code":"200","error": None,"message": "User retrieved successfully"

Building

Requirements:

  • Docker
  1. Clone the repository: git clone https://github.com/mykbit/Hassle-Free-Ticketing.git
  2. Navigate to the project directory: cd path/to/Hassle-Free-Ticketing
  3. Insert your Revolut QR code (or simply your account details) in /Hassle-Free-Ticketing/client/src/assets/
  4. Build the project: docker compose up --build

Interaction

  1. By default the app is hosted locally, so open http://localhost:8000
  2. To utilize the functionality of the solution proceed to http://localhost:8000/register or http://localhost:8000/login
  3. After successful registration/login, you can either host an event or register for an existing one.
  4. Upon registering for an event you will be prompted to pay for the tickets via Revolut or any other banking system that provides a simple process such as QR codes.
  5. If you are an event host, you can upload your bank statement in a .csv format to http://localhost:8000/bank-statement/{event_id} to check who expressed their interest and paid for the tickets.

About

A simple free ticketing system developed for college societies to help them reduce costs for hosting events.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published