This project is a job board API developed using Flask, SQLite, Firebase and Flask-RESTful. It provides endpoints for submitting job applications, tracking application statuses, and managing application data. The API is designed to handle file uploads, validate input, and support basic CRUD operations for job applications.
application_service/
│
├── app/
│ ├── static/
│ │ ├── app.js
│ │ └── style.css
│ ├── templates/
│ │ └── index.html
│ ├── utils/
│ │ └── firebase file.json
│ ├── __init__.py
│ ├── models.py
│ ├── routes.py
│ └── config.py
│
├── venv/
│
├── migrations/
│
├── instance/
│ └── app.db
|
├── tests/
│ ├── __init__.py
│ ├── test_routes.py
│ └── test_models.py
│
├── .gitignore
├── requirements.txt # pip freeze > requirements.txt
├── Dockerfile
├── docker-compose.yml
├── run.py
└── README.md
-
Clone the repository:
git clone https://github.com/MadickAngeCesar/job_board_api.git cd job_board_api -
Set up a virtual environment:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Initialize the database:
flask db upgrade
flask run- URL:
/api/job/apply - Method:
POST - Description: Submit a job application with a resume and cover letter.
- URL:
/api/application/status - Method:
GET - Description: Retrieve the status of a job application.
To test the API endpoints, you can use Postman:
- Import the Postman collection provided in the repository.
- Set up the environment variables as needed.
- Test the
POST /api/job/applyandGET /api/application/statusendpoints.
- Description: Create a new Flask application for the Application Service. Set up the project structure, including directories for models, routes, and utilities. Initialize a virtual environment and install necessary dependencies.
- Estimated time: 3 hours
- Description: Create API endpoints for submitting job applications. Handle file uploads (e.g., resumes, cover letters). Implement input validation and database storage for applications.
- Estimated time: 6 hours
- Description: Create API endpoints for retrieving and updating application statuses. Implement status change notifications (integrate with Notification Service).
- Estimated time: 5 hours