This repository contains the source code for the API of the Prentice project, a one stop platform for undergraduates to research about their dream internship.
The prentice-api
codebase is structured as a monolith with 4 distinct services, namely Account
, Review
, Company
, and Salary
services. It boasts 15+ API endpoints to provide services for the frontend client. The services in detail:
The Account
service provides the APIs to interact with user account logic. For example, registering a new user, saving user preferences, and checking if a user exists.
The Review
service provides the APIs to interact with company reviews within the app. Clients can create and fetch company reviews, upload offer letters as proof, create review comment, like or unlike a comment, and more.
The Company
service provides the APIs to interact with the company objects. This is designated for Prentice Admin users only and will utilize RBAC in the future. Here clients can create new companies, fetch companies, and perform other CRUD operations.
The Salary
service provides the APIs to interact with salary related logic, such as comparing salary between two companies.
- Clone this repository using
git clone
- Create virtual environments using
python -m venv .venv
- Activate venv
source .venv/bin/activate
- Install all dependencies through
pip install -r requirements.txt
- Ensure you have the correct environment variables in your
.env
file located at the root of the project - Run
make dev
and the app should run on your local machine
- Clone this repository using
git clone
- Ensure you have Docker Engine and Docker Daemon installed on your machine
- Build Docker Image using
docker build . --file ./Dockerfile --tag prentice-api
- Run container from image using Docker Desktop or on CLI:
docker run -it prentice-api
- Your app should be up and running!