codescalers / CSHR

CRM project mainly for the HR department to manage the employees.
Apache License 2.0
1 stars 1 forks source link

CSHR (Codescalers HR Management System)

A comprehensive management system that provides a range of services, including the ability to submit vacation requests. This system seamlessly integrates with a global calendar, allowing users across all offices to view approved vacations collectively. Additionally, the calendar showcases Birthdates, Events, Meetings, and Holidays, offering a centralized and accessible overview for all users within the organization.

Core Objectives

  1. Global Overview:

    • Display a centralized calendar featuring approved vacations, holidays, events, meetings, and birthdays.
    • Search for users, view their public information, and identify their office affiliation.
    • Search for specific skillsets and identify users with those skills.
  2. Local Management:

    • Appoint an admin for each location.
    • Restrict admin rights to the respective location without sharing across different locations.

Access Levels

Key Features

Development Tools

Various tools are available for development:

Development Mode Commands

When in development mode, use the following Makefile commands:

Implementation Details

Installation Process

To facilitate the installation process, this project utilizes the poetry package manager for Python and pnpm for Node.js. Follow the steps outlined below for a seamless installation:

  1. Install Poetry: Execute the following command to install Poetry for Python:
curl -sSL https://install.python-poetry.org | python3 -
  1. Install Pnpm: To install pnpm globally for Node.js, run the following command:
npm i -g pnpm

After installing these packages you can now install the required packages by executing:

  1. Install project Packages
make install

By following these steps, you ensure the proper setup of the required package managers for this project.

Project Configuration

After executing

make install && make migrate

Please refer to .env.template for all required values. Ensure all values are populated in the .env file within the config directory.

Runing the project using Docker and Docker Compose

To run the full project with all instances, follow these steps:

  1. Set Environment Variables

Create a .env file beside the config directory and set the necessary environment variables. Refer to the previous section for sample environment variable configurations.

  1. Execute Docker Compose

Run the following command to start the Docker containers and please make sure that you are on the root of the project:

# --> To run all services

└─(✹)──> docker compose -f ./docker/docker-compose.yml --env-file=./config/.env up --build -d 

# --> To stop all services
└─(✹)──> docker compose -f ./docker/docker-compose.yml --env-file=./config/.env down 

Also, you can excute the command using Make:

After executing the command, you should see a confirmation similar to the following:

  1. Verify Successful Deployment

This indicates that the Docker containers are being created and the services are starting up.

You can also take a look at configuration.md