ChildSystem
Child Development Monitoring Web App
A collaboratively developed web platform for monitoring and evaluating child development. Parents register, add their children, and complete developmental questionnaires. Therapists then review the data, assign scores, and provide professional feedback. The system supports early detection of developmental issues and improves communication between families and specialists.
FEATURES
User Authentication
Secure login and registration with JWT tokens. Email verification on signup, password reset via email link.
Child Profiles
Parents add multiple children with date of birth, gender, allergies, and medical notes. Each child has a personal timeline of development.
Development Questionnaires
Age-appropriate developmental milestone questionnaires (motor skills, cognitive, social, language) completed by parents periodically.
Therapist Review
Therapists access submitted questionnaires, assign scores per category, and provide structured written feedback with recommended next steps.
Appointments & Scheduling
Parents request consultations with therapists. The system manages availability, sends confirmations, and reminders.
Feedback & Reviews
Bidirectional review system: parents rate therapist consultations, therapists provide developmental assessments.
Role-Based Access
Three roles with distinct permissions: Admin (full access), Parent (own children only), Therapist (assigned patients).
Dashboard
Role-specific dashboards: parents see their children's progress; therapists see their case load; admins see platform statistics.
ARCHITECTURE
Built as a 3-person team project. Django serves both the REST API and the HTML templates, with role-based middleware ensuring parents only see their own children's data, therapists see only assigned patients, and admins have platform-wide access. JWT tokens authenticate API calls; sessions back up template-based pages.
TECH STACK
BACKEND
- Python
3.x - Django
4.x - Django REST Framework
- simplejwt (JWT auth)
- Django ORM
- Django Forms
FRONTEND
- HTML5 / CSS3
- Bootstrap
5.x - JavaScript (vanilla)
- Django templates
- Responsive design
DATA & SECURITY
- SQLite (development)
- JWT token rotation
- CSRF protection
- Password hashing (PBKDF2)
- Role-based middleware
TOOLS & WORKFLOW
- Git & GitHub
- Team collaboration (3 devs)
- Code reviews via PRs
- Manual QA testing
- Issue tracking
ROLES & PERMISSIONS
| Role | Capabilities |
|---|---|
parent |
Register children, fill developmental questionnaires, request appointments, view therapist feedback, rate therapists |
therapist |
View assigned children, review questionnaires, assign scores, provide written feedback, manage appointment availability |
admin |
Full platform access, manage users, assign therapist–child relationships, view platform statistics |
TEAM
Naum Vlavcheski
Co-developer · Backend & database design
Damjan Serafimovski
Co-developer · Frontend & integration
Daniel Pazarkoski
Co-developer · Auth, role permissions, dashboards
CHALLENGES SOLVED
Complex role-based permissions
Three distinct user roles with overlapping but distinct data access. Solved using Django decorators per view + middleware that filters QuerySets at the ORM level — parents physically cannot query other children's records, even via direct URL manipulation.
Questionnaire flexibility
Different questionnaires apply to different age groups (0–6 months, 7–12 months, 1–2 years, etc.). Built a configurable questionnaire model with weighted scoring so admins can add new questionnaires without code changes.
Bidirectional review trust
Parents review therapists, but reviews shouldn't appear publicly until a consultation actually happened. Added a state machine on appointments (requested → confirmed → completed → reviewable) before any rating is allowed.
Team workflow
Three developers working in parallel on overlapping features. Established Git branching strategy (feature branches → PR → review by another team member → merge to main) and split clear ownership areas to avoid merge conflicts.