Code Monkey home page Code Monkey logo

scheduler's Introduction

Brief description

Employee rostering and work scheduling web service

Key features

  • Enterprise, Department or Shift administration differentiation
  • Automated schedule generation with pre-established patterns
  • Easy export to excel report
  • Customizable statistics display

Used technologies

  • Angular
    • Material
    • RxJS
    • ExcelJs
  • Java
    • Spring Boot
    • Spring Data
    • Spring Security
    • EhCache
  • Postgres
  • Nginx
  • Docker

Installation guide

Install

  1. Docker
  2. Docker-compose
  3. Maven
  4. Angular CLI

Clone sources

git clone https://github.com/averude/Scheduler.git

Compile and build

  1. Generate JKS and put it into the ./auth-server/src/main/resources/jks folder
  2. In the root of the project folder run mvn package
  3. In ./frontend-server/src/environments files change the IP address in the base URL to the address of your REST server (Linux host)
  4. Inside the ./frontend-server folder run ng build --prod or ng serve (for local run)

Configure

In the project folder create environment file .env with the next sections:

  1. Profile
    PROFILE - possible values prod or dev
  2. Database section:
    1. DB driver class name
      DB_DRIVER_CLASS_NAME
    2. DB volume path
      DB_VOLUME_PATH
    3. DB URL
      DB_URL
    4. DB name
      DB_NAME
    5. DB user
      DB_USERNAME
    6. DB user password
      DB_PASSWD
    7. Postgres password
      POSTGRES_PASSWORD
  3. Security section
    1. JWT set URI
      JWT_SET_URI
    2. Key store file
      KEY_STORE_FILE
    3. Key store password
      KEY_STORE_PASSWORD
    4. Key alias
      KEY_ALIAS
    5. JWK kid
      JWK_KID
    6. Token validity seconds
      VALIDITY_SECONDS
    7. The bcrypt-ed hash of global_admin password
      GLOBAL_ADMIN_PASS_HASH
  4. Backend section
    1. Path to logs volume
      LOG_VOLUME_PATH
    2. (Available only on prod profile) Graylog host and GELF port
      GRAYLOG_HOST
      GRAYLOG_GELF_PORT
  5. Frontend section
    1. Path to dist volume
      FRONTEND_VOLUME_PATH

.env file example

# dev or prod
PROFILE=dev  

# Database    
DB_DRIVER_CLASS_NAME=org.postgresql.Driver  
DB_URL=jdbc:postgresql://database-server:5432  
DB_NAME=schedulerdb
DB_USERNAME=scheduler
DB_PASSWD=scheduler  
DB_VOLUME_PATH=path_to_project_folder/database  
POSTGRES_PASSWORD=postgres  
GLOBAL_ADMIN_PASS_HASH=some_hash

# Security    
JWT_SET_URI=http://auth-server:5000/.well-known/jwks.json  
KEY_STORE_FILE=scheduler-jwt.jks  
KEY_STORE_PASSWORD=scheduler  
KEY_ALIAS=scheduler-oauth-jwt  
JWK_KID=scheduler-key-id  
VALIDITY_SECONDS=21600      

# Backend     
LOG_VOLUME_PATH=path_to_project_folder/logs  
#GRAYLOG_HOST=graylog_addr  
#GRAYLOG_GELF_PORT=graylog_port

# Frontend    
FRONTEND_VOLUME_PATH=path_to_project_folder/frontend-server/dist/scheduler

Start

Up containers via docker-compose up -d and then in browser open link according to the way you served frontend (it might be http://localhost:4200 for local run or http://your_linux_host_ip for serving with Nginx)

login: global-admin
pass:  according_to_the_hash_in_env

UI example

Picture one
Picture two
Picture three

scheduler's People

Contributors

mcodessa avatar dependabot[bot] avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.