Skip to content

cmatthews20/ferry-reservation-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Ferry Reservation App

Taking inspiration (and frustration) from the Government of NL's ferry services, we (@cmatthews20, @Mepha89, @ShairYousuf) decided to create a ferry reservation and live alert web application. It allows users to view the ferry schedule much easier and enables additional reservation functionality. The app allows users to search for their desired crossing, make a booking, check the status of their booking, and cancel their booking. The app will also send an email confirmation when the user makes a booking.

FOR DEMO PURPOSES: SAMPLE DATA ONLY INCLUDES CROSSINGS ON MAY 1 2023, and MAY 6, 2023, FROM BELL ISLAND TO PORTUGAL COVE

Docs

Project documentation and design processes can be found in the docs folder (see Table of Contents below for details and links). We created the docs to track design decisions/processes, justifications for certain design choices, and miscellaneous project documentation. We have broken the docs into two sections: Docs for Design, and Docs for Devs. Docs for Design consists of docs that we felt were technically relevant and would help contextualize our design decisions. Docs for Devs consists of useful links, troubleshooting help, and documentation from the planning phase.

Docs for Design

Link Description
Troubleshooting Common error codes upon app startup and some possible fixes.
Database Viewers How to view the database if desired.
Current Database The format of the desired/current database tables.
Use Cases Use cases from project proposal. Final cases have been implemented successfully.
ORM Why are we using an ORM?
Demo Screenshots Demo screenshots in case the app does not launch.

Docs for Devs

Link Description
Sample Stacks We kept a note of the stacks we came up with during brainstorming.
Current Stack Setup Detailed steps taken during initial setup of the current stack.
Code Formatting We used a Python code formatter to ensure consistent .py file code styling.
Middleware CORSMiddleware was used to make cross-origin requests.
Backend Additional notes for backend setup and info.
Vercel and Next.js Future deployment with Vercel and more Next.js info.
Ideas and TODO TODO list and unfiltered feature ideas we could implement in the future.
Reading List Useful links for future/past work

How to run

To run the application, two terminal instances will be needed; one for the backend, and one for the frontend.

Backend

If pip is not installed on your machine, follow this tutorial to install it.

  1. Navigate to the backend folder:
cd backend
  1. Install backend dependencies:
pip install -r requirements.txt
  1. Run the API with Uvicorn:
python -m uvicorn api:app --reload
#or
uvicorn api:app --reload
  1. (OPTIONAL) Go to the following endpoints to view the API documentation:
#For readable documentation
http://127.0.0.1:8000/redoc

#For testing
http://127.0.0.1:8000/docs

Frontend

If npm is not installed on your machine, follow this tutorial to install it.

  1. Navigate to the frontend folder:
cd frontend
  1. Install frontend dependencies from package.json
npm i
  1. Then, run the development server:
npm run dev
  1. Open http://localhost:3000 with your browser to see the result.

About

Reservation and live alert platform for ferries operated by the provincial government of NL.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •