210 lines
3.1 KiB
Markdown
210 lines
3.1 KiB
Markdown
# Dance Odoo
|
|
|
|
Dance ERP built on Odoo 17.
|
|
|
|
## Current Scope
|
|
|
|
The first implemented modules are `dance_student` and `dance_batch`. Students extend `res.partner` instead of using a separate student table, so they remain compatible with Odoo contacts, invoices, messages, activities, and future accounting flows.
|
|
|
|
## Run Locally
|
|
|
|
```powershell
|
|
docker compose up -d
|
|
```
|
|
|
|
Odoo runs at:
|
|
|
|
```text
|
|
http://localhost:11000
|
|
```
|
|
|
|
The configured database is:
|
|
|
|
```text
|
|
Odoo_dance
|
|
```
|
|
|
|
## Student Module
|
|
|
|
Installed addon:
|
|
|
|
```text
|
|
addons/dance_student
|
|
```
|
|
|
|
It adds:
|
|
|
|
- `is_student`
|
|
- `student_code`
|
|
- `guardian_id`
|
|
- `guardian_ids`
|
|
- `guardian_phone`
|
|
- `date_of_birth`
|
|
- `age`
|
|
- `gender`
|
|
- `dance_style`
|
|
- `level`
|
|
- `student_status`
|
|
- `join_date`
|
|
- `medical_notes`
|
|
|
|
Students are available from:
|
|
|
|
```text
|
|
Dance ERP > Students
|
|
```
|
|
|
|
## Batch Module
|
|
|
|
Installed addon:
|
|
|
|
```text
|
|
addons/dance_batch
|
|
```
|
|
|
|
It adds:
|
|
|
|
- `dance.batch`
|
|
- `dance.enrollment`
|
|
|
|
The relationship is:
|
|
|
|
```text
|
|
Student -> Enrollment -> Batch
|
|
```
|
|
|
|
This allows one student to join multiple batches and one batch to contain many students. The module also tracks instructor, room, dates, timing, capacity, current strength, and enrollment status.
|
|
|
|
Batches are available from:
|
|
|
|
```text
|
|
Dance ERP > Batches
|
|
```
|
|
|
|
Enrollments are available from:
|
|
|
|
```text
|
|
Dance ERP > Enrollments
|
|
```
|
|
|
|
## Session And Attendance Module
|
|
|
|
Installed addon:
|
|
|
|
```text
|
|
addons/dance_attendance
|
|
```
|
|
|
|
It adds:
|
|
|
|
- `dance.session`
|
|
- `dance.attendance`
|
|
|
|
The relationship is:
|
|
|
|
```text
|
|
Batch -> Session -> Attendance -> Student
|
|
```
|
|
|
|
Sessions are available from:
|
|
|
|
```text
|
|
Dance ERP > Sessions
|
|
```
|
|
|
|
Attendance records are available from:
|
|
|
|
```text
|
|
Dance ERP > Attendance
|
|
```
|
|
|
|
Daily flow:
|
|
|
|
```text
|
|
Open today's session
|
|
Load Students
|
|
Mark Present / Absent / Late
|
|
Complete session
|
|
```
|
|
|
|
## Fees Module
|
|
|
|
Installed addon:
|
|
|
|
```text
|
|
addons/dance_fees
|
|
```
|
|
|
|
It adds:
|
|
|
|
- `dance.fee.structure`
|
|
- Fee links on batches
|
|
- Manual invoice generation from enrollments and batches
|
|
- Dance metadata on Odoo invoices
|
|
|
|
The relationship is:
|
|
|
|
```text
|
|
Student -> Enrollment -> Batch -> Fee Structure -> Invoice -> Payment
|
|
```
|
|
|
|
Main places:
|
|
|
|
```text
|
|
Dance ERP > Fee Structures
|
|
Dance ERP > Batches
|
|
Dance ERP > Enrollments
|
|
Accounting > Customers > Invoices
|
|
```
|
|
|
|
Manual billing flow:
|
|
|
|
```text
|
|
Set a fee structure on the batch
|
|
Open an active enrollment
|
|
Click Create Invoice
|
|
Register payment in Odoo
|
|
```
|
|
|
|
## Useful Scripts
|
|
|
|
Update the student module:
|
|
|
|
```powershell
|
|
.\scripts\update_module.ps1 dance_student
|
|
```
|
|
|
|
Update the batch module:
|
|
|
|
```powershell
|
|
.\scripts\update_module.ps1 dance_batch
|
|
```
|
|
|
|
Update the attendance module:
|
|
|
|
```powershell
|
|
.\scripts\update_module.ps1 dance_attendance
|
|
```
|
|
|
|
Update the fees module:
|
|
|
|
```powershell
|
|
.\scripts\update_module.ps1 dance_fees
|
|
```
|
|
|
|
Create a database backup:
|
|
|
|
```powershell
|
|
.\scripts\backup_db.ps1
|
|
```
|
|
|
|
Restore a database backup:
|
|
|
|
```powershell
|
|
.\scripts\restore_db.ps1 -BackupFile .\backups\Odoo_dance_YYYYMMDD_HHMMSS.sql
|
|
```
|
|
|
|
## Nginx
|
|
|
|
`nginx/odoo.conf` contains a reverse proxy configuration for Odoo. It is not enabled as a Docker service yet, so the current local port setup stays simple and unchanged.
|