This repository contains the backend server implementation for Career Connect, a platform designed to connect job seekers with employers.
- Node.js
- Express.js
- MongoDB(Indexes, Aggregations, Transactions)
- JWT Authentication
- Docker
- Socket.io (for real-time notifications)
- Twilio API (for two-factor authentication)
- Redis (for caching)
- BullMQ (for job scheduling and background processing)
- Docker and Docker Compose
- Node.js (v14 or higher) - for local development
- MongoDB - for local development
- npm or yarn - for local development
-
Clone the repository
git clone <repository-url> cd career-connect/back-end
-
Build and run with Docker Compose
docker-compose up --build
-
Clone the repository
git clone <repository-url> cd career-connect/back-end
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit the
.envfile with your configuration -
Start the server
npm run dev
The API endpoints are documented using Postman. You can access the API documentation at the following URL:
- User authentication and authorization
- Job posting management
- Profile management
- Application tracking
- Search functionality
- Real-time notifications using Socket.io
- Two-factor authentication using Twilio API
- Containerized deployment
- Background job processing using BullMQ
- logging with pino(registrations, logins, account deletions and all kinds of errors)
BullMQ is used to handle background tasks efficiently. Some of the tasks handled include:
Scheduled Account Deletion: Soft-deleted accounts are permanently removed after one day.
This repository contains the frontend code for the Career Connect application, a platform designed to connect job seekers with employers.
- React: A JavaScript library for building user interfaces.
- Vite: A fast and lightweight build tool for modern web development.
- TypeScript: A superset of JavaScript that adds static typing.
- Zustand: A small, fast and scalable bearbones state-management solution.
- Axios: A promise-based HTTP client for making API requests.
- Motion: A library for creating smooth and engaging animations.
- React Toastify: A library for displaying toast notifications.
- react-hook-form: A library for handling forms.
- Zod: A TypeScript-first schema declaration and validation library.
-
Clone the repository:
git clone <repository_url> cd front-end
-
Install dependencies:
npm install # or yarn install or pnpm install -
Configure environment variables:
- Create a
.envfile in the root directory of the project. - Add the necessary environment variables (e.g., API base URL, authentication keys). See
.env.examplefor a template.
- Create a
-
Start the development server:
npm run dev # or yarn dev or pnpm devThis will start the Vite development server, and you can access the application in your browser at
http://localhost:5173(or the port specified in your.envfile).
-
Build the application:
npm run build # or yarn build or pnpm buildThis will create a
distdirectory containing the production-ready build of your application. -
Serve the production build:
You can use a static file server (e.g.,
serve,nginx) to serve the contents of thedistdirectory.
This project includes a Dockerfile and docker-compose.yml for easy containerization.
-
Build the Docker image:
docker-compose build
-
Run the Docker container:
docker-compose up -d
This will start the application in a Docker container. You can access the application in your browser at
http://localhost:5173(or the port specified in yourdocker-compose.ymlfile).