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
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.
| 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. |
| 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 |
To run the application, two terminal instances will be needed; one for the backend, and one for the frontend.
If pip is not installed on your machine, follow this tutorial to install it.
- Navigate to the
backendfolder:
cd backend- Install backend dependencies:
pip install -r requirements.txt- Run the API with Uvicorn:
python -m uvicorn api:app --reload
#or
uvicorn api:app --reload- (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/docsIf npm is not installed on your machine, follow this tutorial to install it.
- Navigate to the
frontendfolder:
cd frontend- Install frontend dependencies from
package.json
npm i- Then, run the development server:
npm run dev- Open http://localhost:3000 with your browser to see the result.