Sign inSign up

israelmanzi/lms-server

By israelmanzi

•Updated over 1 year ago

Leave Management System Server [Spring Boot]

Image
Languages & frameworks
API management
Web servers
0

270

israelmanzi/lms-server repository overview

⁠Leave Management System

A comprehensive Leave Management System built with Spring Boot to streamline how staff apply for and manage their leave.

⁠Quick Start

Run the service with database using Docker Compose:

services:
  app:
    image: israelmanzi/lms-server:latest
    container_name: lms-server
    restart: unless-stopped
    depends_on:
      - db
    ports:
      - "8080:8080"
    env_file:
      - .env
    environment:
      - SPRING_PROFILES_ACTIVE=prod
      - SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/${DB_NAME}
    volumes:
      - uploads-volume:/uploads
    networks:
      - lms-network

  db:
    image: postgres:15-alpine
    container_name: lms-db
    restart: unless-stopped
    env_file:
      - .env
    environment:
      - POSTGRES_DB=${DB_NAME}
      - POSTGRES_USER=${DB_USER}
      - POSTGRES_PASSWORD=${DB_PASSWORD}
    volumes:
      - postgres-data:/var/lib/postgresql/data
    networks:
      - lms-network

volumes:
  postgres-data:
  uploads-volume:

networks:
  lms-network:
    driver: bridge

Create a .env file with:

# Database Configuration
DB_NAME=lms-db
DB_USER=masteruser
DB_PASSWORD=masterpass
SPRING_DATASOURCE_URL=jdbc:postgresql://db:5432/lms-db
SPRING_DATASOURCE_USERNAME=masteruser
SPRING_DATASOURCE_PASSWORD=masterpass

# Mail Configuration
[email protected]
SPRING_MAIL_PASSWORD=your-app-password

# JWT Configuration
JWT_SECRET=your-jwt-secret-key

# Admin Configuration
ADMIN_USERNAME=admin
[email protected]
ADMIN_PASSWORD=admin-password
ADMIN_FIRSTNAME=Admin
ADMIN_LASTNAME=User

# Microsoft Authentication (optional)
MICROSOFT_CLIENT_ID=client-id
MICROSOFT_CLIENT_SECRET=client-secret
MICROSOFT_TENANT_ID=tenant-id
MICROSOFT_AUTH_ENABLED=false

⁠Features

  • Authentication: JWT-based with optional Microsoft Authenticator integration
  • Multiple Leave Types: PTO, Sick Leave, Compassionate Leave, Maternity Leave, Unpaid Leave
  • Approval Workflow: Managers can approve/reject leave requests
  • Balance Management: Auto-accrual and carry-forward policies
  • Admin Panel: Manage users, leave types, and balances
  • Calendar View: Team calendar showing who is on leave
  • Notifications: Email alerts for leave requests and status updates
  • Reports: Generate reports by employee, leave type, department

⁠Environment Variables

VariableDescriptionRequired
DB_NAMEDatabase nameYes
DB_USERDatabase usernameYes
DB_PASSWORDDatabase passwordYes
SPRING_MAIL_USERNAMEEmail for sending notificationsYes
SPRING_MAIL_PASSWORDEmail password/app passwordYes
JWT_SECRETSecret key for JWT tokensYes
ADMIN_PASSWORDPassword for the default admin accountYes
MICROSOFT_CLIENT_IDMicrosoft app client IDFor MS Auth
MICROSOFT_CLIENT_SECRETMicrosoft app client secretFor MS Auth
MICROSOFT_TENANT_IDMicrosoft tenant IDFor MS Auth
MICROSOFT_AUTH_ENABLEDEnable Microsoft authenticationNo

⁠API Documentation

Once the application is running, access the Swagger API documentation at:

⁠Default Admin Account

The system automatically creates an admin account on first startup with the credentials specified in your environment variables.

⁠Tags

  • latest: The most recent stable build
  • 1.0.0: Initial release version

⁠Source Code

The source code is available on GitHub⁠

⁠License

MIT License⁠

Tag summary

Content type

Image

Digest

sha256:eb0021eb7…

Size

123 MB

Last updated

over 1 year ago

docker pull israelmanzi/lms-server