How rumaraenggai/erpsys works
MiniERP is a Flask-based internal ERP for employee administration, project planning and execution, time tracking, attendance, leave, and payroll. Users enter through the web app, authenticate, and use role-protected modules that read or update the ERP and timesheet databases; dashboards and reports present operational results. Separate scheduled commands send pending-work digests and project deadline alerts. The README documents biometric-device sync and statutory payroll, while the tree identifies additional reporting, AI, and export modules. Several module excerpts were not sampled, so their documented capabilities are shown without speculative internal call chains.
Main entry points: app.py Flask application · erp.db ERP database · dashboard.py Dashboard · salary.py Payroll and increments
Components 24
Web entry and access
- Flask application
app.py - Authentication and roles
modules/auth.py
People and work
- Employee records
modules/hr.py - Project planning
modules/projects.py - Task management
modules/tasks.py - Time logging and imports
modules/timesheet.py - Leave management
modules/leave.py
Attendance and payroll
- Payroll and increments
modules/salary.py - Biometric attendance
modules/biometric.py - Holidays
modules/holidays.py - Payslip PDF
modules/pdf_payslip.py - Payroll spreadsheet
modules/excel_payroll.py
Insights and notifications
- Dashboard
modules/dashboard.py - Reports
modules/reports.py - Project insights
modules/project_insights.py - Daily work digest
modules/daily_digest.py - Deadline alerts
modules/deadline_alerts.py - Email dispatch
modules/email_dispatch.py - AI insights and settings
modules/insight_ai.py
Persistent state
- ERP database
data/erp.db - Timesheet database
data/timesheets.db
Other components
- ERP user
- ESSL-compatible device
- SMTP service
Connections 40
- ERP user → Flask application: uses
- Flask application → Authentication and roles: registers
- Flask application → Employee records: registers
- Flask application → Project planning: registers
- Flask application → Task management: registers
- Flask application → Time logging and imports: registers
- Flask application → Leave management: registers
- Flask application → Payroll and increments: registers
- Flask application → Biometric attendance: registers
- Flask application → Dashboard: registers
- Flask application → Reports: registers
- Flask application → Holidays: registers
- Flask application → ERP database: initializes
- Flask application → Daily work digest: invokes command
- Flask application → Deadline alerts: invokes command
- Authentication and roles → ERP database: reads and writes
- Employee records → ERP database: reads and writes
- Project planning → ERP database: reads and writes
- Project planning → Timesheet database: reads
- Task management → ERP database: reads and writes
- Time logging and imports → ERP database: reads and writes
- Time logging and imports → Timesheet database: imports and logs
- Leave management → ERP database: reads and writes
- Dashboard → ERP database: reads
- Dashboard → Timesheet database: reads
- Dashboard → Project insights: generates insights
- Dashboard → ERP database: reads increment reviews
- Reports → ERP database: reads
- Payroll and increments → ERP database: reads and writes
- Biometric attendance → ERP database: records attendance
- Biometric attendance → ESSL-compatible device: pulls punches
- Holidays → ERP database: reads and writes
- Payslip PDF → Payroll and increments: renders payroll data
- Payroll spreadsheet → Payroll and increments: exports payroll data
- Daily work digest → ERP database: reads pending work
- Daily work digest → Email dispatch: dispatches digests
- Deadline alerts → ERP database: reads deadlines
- Deadline alerts → Email dispatch: dispatches alerts
- Email dispatch → SMTP service: sends mail
- AI insights and settings → ERP database: reads configuration