Skip to content

A REST API microservice that is used for retrieving application data of applicants.

Notifications You must be signed in to change notification settings

IV1201-Group-2/recruiter-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Recruiter Service

This API is used by recruiters to retrieve job applications and applicant's personal information. It is a microservice that is part of a recruitment application.

General Information

  • Programming Language: Python
  • Virtual Environment: Python venv
  • Framework: Flask
  • Application Modularity: Flask Blueprints
  • API Design: RESTful principles
  • Configuration Management: Externalized to config.py
  • Security: Flask-JWT-Extended (authentication & authorization)
  • CORS: Flask-Cors
  • Logging: Flask-Logging + Root Logger
  • Database Integration: Flask-SQLAlchemy
  • Database: PostgreSQL
  • Testing: Pytest + Testcontainers
  • Code Coverage: pytest-cov
  • Linting: flake8
  • Dependency Management: Pip
  • Continuous Integration: GitHub Actions
  • Continuous Deployment: Heroku

Project Setup

Ensure all commands are executed from the project root.

  1. Environment Setup: Create and activate a virtual environment.

    python3 -m venv venv
    source venv/bin/activate
  2. Install Dependencies: Install all required dependencies.

    pip install -r requirements.txt
  3. Run Tests: Execute all tests (requires Docker to run locally).

    pytest
  4. Code Coverage: Generate code coverage report (requires Docker to run locally).

    pytest --cov=app
  5. Linting: Run linting checks.

    flake8 --show-source --statistics app tests
  6. Environment Variables:

    • Setup as specified in config.py.
  7. Run Development Server: Start the development server.

    flask --app app/app run
  8. Run Heroku Locally: Run the application locally using Heroku.

    heroku local

Directory Structure

📦 
├─ .github
│  └─ workflows      - Contains GitHub Actions workflow files.
├─ app
│  ├─ models         - Contains database entities.
│  ├─ repositories   - Handles database interactions.
│  ├─ routes         - Defines application routes.
│  ├─ services       - Implements business logic.
│  └─ utilities      - Contains HTTP status codes.
└─ tests
   ├─ repositories   - Unit tests for repository functions.
   ├─ routes         - Unit tests for route handlers.
   ├─ services       - Unit tests for service layer functions.
   └─ utilities      - Utility functions for testing.

About

A REST API microservice that is used for retrieving application data of applicants.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published