Skip to content

Job Portal (Job Leet) backend design using .Net 8, Docker & MySQL DB following clean architectural pattern.

License

Notifications You must be signed in to change notification settings

Nix-code/Job-Leet-core-api

Repository files navigation

Job Leet - Job Portal API

Welcome to Job Leet, your go-to job portal powered by the Job Leet Job Portal API. This project is built using .NET 8, Docker and MySQL, providing a robust REST API for job-related functionalities.

Find the Frontend Development repository of this project Here

Getting Started with Docker environment

Install Docker

  1. Create .env file in the root directory Fill the following information
MYSQL_DATABASE= DBName
MYSQL_PASSWORD= StrongPassword
  1. Rename appsettings.json to appsettings.Development.json Replace the following informatoin
"ConnectionStrings": {
    "jobleetconnect": "Server=sql_server;Database=<DBName>;User=<Username>;Password=<password>;Port=3306;AllowPublicKeyRetrieval=True;SslMode=None"
  },
  1. Navigate to the docker-compose.yml and check the credentials; It should match the credentials of jobleetconnect Note: The credentials in docker-compose.yml, .env and jobleetconnect must match.
 environment:
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: leetadmin
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}`
  1. Final step
docker-compose build && docker-compose up

and Access the service using

http://localhost:8080/api/v1/<endpoint>

Or

http://localhost:8080/swagger/index.html

Table of Contents

Getting Started In local environment

Prerequisites

Make sure you have the following installed on your system:

Clone and Build

Clone the repository:

git clone https://github.com/Nix-code/Job-Leet-core-api.git

Navigate to the project directory:

cd Job-Leet-core-api

Build the application: bash dotnet build

Configuration

Update the appsettings.json file with your MySQL database connection details. But we will be using appsettings.Development.json for our work.

Database

Job Leet uses a MySQL database to store job-related data. You can configure the database connection settings in the appsettings.json file.

Migrate the Database

dotnet add package Microsoft.EntityFrameworkCore.Design

Features

  • BaseAPIController
  • BaseDBContext
  • Input Validation
  • Data Validation
  • Database Migrations
  • Endpoints
  • Caching
  • Loggers
  • Authentication
  • Exceptions
  • SecurityHeaders
  • RateLimiter
  • Versioning
  • Jwt Tokens
  • Message Broker (RabbitMQ)
  • Documentations
  • Docker Container
  • CICD
  • Unit tests

Issues

If you encounter any issues or have suggestions, feel free to open an issue here

Contribution

We welcome contributions to make Job Leet even better! If you'd like to contribute, please follow the steps here

License

This project is licensed under the MIT License. Feel free to explore, contribute, and use Job Leet according to the terms of the license.

Releases

No releases published

Packages

No packages published