Skip to content

Payroll accounting system of dentistry based on the "Infodent" program.

Notifications You must be signed in to change notification settings

Aaliyah097/aestetica

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Business Logic

business_logic.png

Components Diagram

component_diagram.png

Class Diagram

class_diagram.png

DB Scheme

db_scheme.png

Result

result.png result.png


Use cases

  • get list of employees with their salary-grid
  • get salary report for each staff in complex
  • modify salary-grid

1. Staff

Entities

  • Role

The role defines the invariant of the Staff: doctor, assistant, etc.

  • Users
    • Staff (abstract class)
    • Doctor
    • Assistant
    • Technician (not an employee)

Each Staff can be presented in variants based on his role.
The calculation method for each invariant is different

2. Treatments

Entities

  • Service
  • Treatment

Staff receive Salary in each Filial independently

  • Filial
  • Department

Staff have different interest rates (a.n.a. Salary-grid) depends on Department

  • Consumables

3. Schedule

Entities

  • Schedule

For Assistants and the like who receive a Salary depending on the number of working hours

4. Salary

Entities

  • Salary
    • Salary-grid

Requirements

  • min python v. 3.11
  • min Flask v. 2.*

Run app

  • pip install virtualenv
  • virtualenv -p python3 venv
  • venv\Scripts\activate.bat OR venv\Scripts\Activate.ps1
  • pip install -r requirements.txt
  • type nul > db/aestetica/db.sqlite3
  • alembic upgrade head
  • pytest tests/test_sync.py -s
  • python app.py

Errors

Event: alembic migrations Error: ValueError: Constraint must have a name Solution: sqlalchemy/alembic#1195 (kitty7c6 answer)

About

Payroll accounting system of dentistry based on the "Infodent" program.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published