Team working with a digital school management system — Axula, built in Python Flask for an educational institution in Santo Domingo, Dominican Republic
Case study Python · Flask · SQLite AI built-in Santo Domingo, DR 2025 – 2026

Axula — AI-powered school management system

A complete web platform for the Centro Educativo en Arte Benito Juárez in Santo Domingo. It covers the full lifecycle of Dominican school administration: student records, attendance, grades, PDF report cards, behavioral agreements, and an AI assistant for parents.

View live demo
20+
Modules (Flask Blueprints)
8
Independent user roles
<3 sec
PDF report card generation
90 sec
Per-classroom attendance entry
100%
MINERD Ordinance 04-2023
24/7
AI assistant for parents

The problem: school administration with no digitization

The Centro Educativo en Arte Benito Juárez ran all of its administrative processes in a fragmented way. As a multimedia teacher at the institution, I experienced that friction firsthand, which completely changed how I designed the solution.

⚠ Before Axula
  • Student records on paper and in physical folders
  • Report cards generated manually — hours of work per term
  • Attendance tracked in unsynced Excel spreadsheets
  • Parents calling the school after hours with no answer
  • Behavioral reports scattered across teachers
  • Zero visibility into the institution's overall performance
  • Competency-based assessment (Ordinance 04-2023) impossible to systematize
✓ With Axula
  • Unified digital record per student with a full history
  • PDF report card generated in under 3 seconds per student
  • Attendance logged per classroom in under 90 seconds
  • AI assistant (LLaMA 3) answers parent questions 24/7
  • Behavioral engine: GREEN / YELLOW / RED traffic light per student
  • Role-based dashboard — each user sees only what applies to them
  • Competencies and achievements per Ordinance 04-2023, fully systematized

Screenshots of the system in production

axula.onrender.com / dashboard
Teacher dashboard in Axula with access to attendance, grades, competency-based assessment, and project-based lesson planning

Teacher dashboard — 15 accessible modules: attendance, grades, competency-based assessment, project-based lesson planning, and more

axula.onrender.com / asistente-ia / planificacion
AI Teaching Assistant in Axula generating a lesson plan aligned to the MINERD curriculum

AI Teaching Assistant — generates lesson plans aligned to the official MINERD curriculum with LLaMA 3

axula.onrender.com / asistente-ia / plantilla-abp
Official MINERD PBL Word template generator with AI inside Axula

MINERD PBL template — the AI fills out the official Word project-planning document, ready to download

axula.onrender.com / coherencia-horizontal
Horizontal coherence matrices by subject and grade in Axula

Horizontal Coherence — competency and learning-outcome matrices by subject and grade, exportable to Word

System architecture

Axula uses a modular architecture of 20 Flask Blueprints organized by functional domain. SQLite in WAL (Write-Ahead Logging) mode allows concurrent reads without locking while the system writes — key in a school environment with many simultaneous users.

Presentation layer
Browser / End user
8 roles → 8 distinct interfaces
Application layer — Flask
app.py · Application Factory
CSRF Middleware
Session Manager
20 domain Blueprints
auth
records
report card
attendance
behavior
assessment
reports
finance
ai assistant
+11 more
Data layer and external services
SQLite WAL · database.db
Groq API · LLaMA 3
ReportLab · PDF
openpyxl · Excel

Main modules

🔐
Authentication · 8 roles
Principal, coordinator, teacher, counselor, secretary's office, data entry, parent, student. Each role sees only its own portal.
📋
Student record
Unified profile with 4 indicators: academic, behavioral, psychological, and achievements. Full history per student.
📄
Automatic PDF report card
Generated in <3 sec with ReportLab. Institutional header, competency-based grades, teacher signature. Per Ordinance 04-2023.
🚦
Behavioral engine
Score = 40% grades + 35% attendance + 25% behavior. GREEN / YELLOW / RED traffic light per student in real time.
🤖
AI assistant (LLaMA 3)
Answers parent questions about schedules, payments, and enrollment 24/7. Integrated via Groq API with school context.
✍️
Commitment agreement
Dedicated page per student. Generation, review, and digital signature of behavioral agreements between family and school.
📊
PDF / Excel reports
Institutional report export with openpyxl and ReportLab. Filters by grade, term, and section.
🏛
4 administrative portals
Secretary's office, Data entry, Finance, and Competency-Based Assessment — independent dashboards per function.

Tech stack

Backend

Python 3 Flask · Application Factory SQLite WAL Blueprint Architecture CSRF Protection Jinja2 Templates

AI and document generation

Groq API LLaMA 3 ReportLab (PDF) openpyxl (Excel)

Frontend and security

JavaScript (ES6) CSS Variables · Light/dark theme WAL mode concurrency Rate limiting Input sanitization

How Axula was built

I built Axula from inside the institution — as a teacher living the problems I was solving. That completely changed the design decisions.

  1. 1
    Direct observation (2 weeks) Before writing code, I documented every manual process: how report cards were filled out, how long attendance took, where information got lost between teachers and the secretary's office.
  2. 2
    Domain-based Blueprint architecture I designed each module as an independent Blueprint. This lets the system grow without touching what already works — a new module doesn't break existing ones.
  3. 3
    Iterative development with real users The attendance interface was redesigned 3 times until any teacher could complete it in under 90 seconds per classroom. Not an estimated speed — time measured with a stopwatch.
  4. 4
    AI integrated into existing flows, not as a separate feature The LLaMA 3 assistant appears at the exact moment a parent needs an answer — not as a generic floating chatbot, but built into the parent portal with school context.
  5. 5
    Full modularization (20 Blueprints) Refactoring from a monolith to a Blueprint architecture was the most critical change. It lets different team roles work on modules without code conflicts.

What I learned building Axula

Building a system you use yourself changes how you design. You're not interpreting a brief — you're solving your own problem. Every UX decision has real consequences: if the attendance form is slow, you lose the time. That forces honesty.

The most important lesson: AI isn't a feature, it's a layer. The LLaMA 3 modules work better when integrated into flows that already exist than when presented as separate tools. The query assistant works because it appears at the exact moment a parent needs it, with real school context — not as a generic chatbot.

The second lesson: SQLite in WAL mode solves 90% of concurrency cases without the complexity of Postgres. For internal systems with dozens of simultaneous users, it's the right choice. Adding unnecessary complexity is the most common architecture mistake.

Need a custom system for your organization?

I build complete web platforms with Python, Flask, and built-in AI for businesses and institutions in the Dominican Republic. Every system starts with real process analysis — not code.