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
docker compose up -d
Odoo runs at:
http://localhost:11000
The configured database is:
Odoo_dance
Student Module
Installed addon:
addons/dance_student
It adds:
is_studentstudent_codeguardian_idguardian_idsguardian_phonedate_of_birthagegenderdance_stylelevelstudent_statusjoin_datemedical_notes
Students are available from:
Dance ERP > Students
Batch Module
Installed addon:
addons/dance_batch
It adds:
dance.batchdance.enrollment
The relationship is:
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:
Dance ERP > Batches
Enrollments are available from:
Dance ERP > Enrollments
Session And Attendance Module
Installed addon:
addons/dance_attendance
It adds:
dance.sessiondance.attendance
The relationship is:
Batch -> Session -> Attendance -> Student
Sessions are available from:
Dance ERP > Sessions
Attendance records are available from:
Dance ERP > Attendance
Daily flow:
Open today's session
Load Students
Mark Present / Absent / Late
Complete session
Fees Module
Installed addon:
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:
Student -> Enrollment -> Batch -> Fee Structure -> Invoice -> Payment
Main places:
Dance ERP > Fee Structures
Dance ERP > Batches
Dance ERP > Enrollments
Accounting > Customers > Invoices
Manual billing flow:
Set a fee structure on the batch
Open an active enrollment
Click Create Invoice
Register payment in Odoo
Useful Scripts
Update the student module:
.\scripts\update_module.ps1 dance_student
Update the batch module:
.\scripts\update_module.ps1 dance_batch
Update the attendance module:
.\scripts\update_module.ps1 dance_attendance
Update the fees module:
.\scripts\update_module.ps1 dance_fees
Create a database backup:
.\scripts\backup_db.ps1
Restore a database backup:
.\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.