Skip to content

Adityakumar926/MENTARA

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Mentara – Learning & Assessment Platform

βœ… Current Status (Full Stack)

This workspace includes:

  • βœ… Django backend (DRF) with auth, exams, attempts, admin controls
  • βœ… React frontend (Vite + Tailwind) with student/teacher/admin dashboards
  • βœ… Structured workflow support (uploads + teacher grading where applicable)

Quick links

Teacher‑Guided Assignment System (New Requirement)

Client requirement + implementation plan is documented here:

  • docs/TEACHER_GUIDED_ASSIGNMENT_SYSTEM_PRODUCTION.md

Key Highlights

  • 🎨 Apple-level UI: Dark theme with gradient accents, micro-interactions
  • πŸ“Š Smart Analytics: Streak tracking, topic performance, leaderboards
  • πŸ€– Auto-grading: Instant MCQ grading with teacher override for descriptive
  • πŸ“± Fully Responsive: Perfect on mobile, tablet, and desktop
  • πŸš€ Production Ready: Docker, CI/CD, monitoring, and load testing configured

✨ Features

For Students

  • Interactive Test Engine: Timed exams with auto-submit
  • Performance Dashboard: Track progress, streaks, and topic mastery
  • Detailed Analytics: See strengths and weaknesses at a glance
  • Leaderboards: Weekly rankings to stay motivated
  • Badge System: Unlock achievements for milestones

For Teachers

  • Exam Management: Create and organize tests by topic
  • Grading Queue: Review and grade descriptive answers
  • Bulk Upload: Import questions via CSV with validation
  • Student Analytics: Monitor class performance and trends
  • PDF Uploads: Attach evaluated answer sheets

For Admins

  • User Management: Bulk operations on students and teachers
  • Content Control: Manage topics, questions, and exams
  • System Monitoring: Health checks and error tracking
  • Analytics Dashboard: System-wide performance metrics

πŸš€ How to Run (Local)

Option A: Quick start scripts

  • Windows: quick-start.ps1
  • Linux/macOS: quick-start.sh

Option B: Manual (Backend + Frontend)

Backend

python manage.py migrate
python manage.py runserver

Frontend

cd frontend
npm install
npm run dev

Option C: Docker

docker-compose -f docker-compose.yml up -d --build

Admin Panel: http://127.0.0.1:8000/admin

Login Credentials:

  • Email: admin@test.com
  • Password: Mentra@2027

What You Can Do in Admin Panel

  1. View Users - See all 13 demo users (1 admin, 1 teacher, 11 students)
  2. Manage Topics - 9 Physics topics (Mechanics, Waves, etc.)
  3. Browse Exams - 6 exams with 49 questions
  4. Check Attempts - 24 test attempts from students
  5. CRUD Operations - Create/Read/Update/Delete all data

Demo Accounts (for testing future frontend)

  • Student: student1@demo.com / Demo@123
  • Teacher: teacher@demo.com / Demo@123

πŸ“Œ Notes

  • If you deploy on a free platform with ephemeral storage (e.g., free Render tier), uploaded media may disappear. For stable uploads use S3/R2/B2-style object storage.
  • For production setup guidance see DEPLOYMENT.md.

πŸ“ Project Structure

IB_Django/
β”œβ”€β”€ accounts/           # User authentication & profiles
β”œβ”€β”€ dashboard/          # Student & teacher dashboards
β”œβ”€β”€ exams/             # Core exam engine & API
β”œβ”€β”€ quizzes/           # Legacy quiz module
β”œβ”€β”€ questionpapers/    # Question paper management
β”œβ”€β”€ frontend/          # React frontend application
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ pages/    # Dashboard, grading, test pages
β”‚   β”‚   └── styles/   # Apple-inspired CSS
β”œβ”€β”€ ib_project/        # Django project settings
β”œβ”€β”€ media/             # User uploads (answers, PDFs)
β”œβ”€β”€ static/            # Static assets
β”œβ”€β”€ templates/         # Django templates
β”œβ”€β”€ .github/           # CI/CD workflows
β”œβ”€β”€ docker-compose.yml # Multi-service orchestration
β”œβ”€β”€ Dockerfile         # Backend container
└── requirements.txt   # Python dependencies

🎨 Design System

Color Palette

  • Background: #0B0B0D (Deep black)
  • Surface: #1A1A1F (Elevated black)
  • Primary: #7CE7FF (Cyan gradient start)
  • Accent: #00C2A8 (Teal gradient end)
  • Text: #E5E5E7 (Off-white)

Typography

  • Headings: SF Pro Display / Inter
  • Body: -apple-system, BlinkMacSystemFont, 'Segoe UI'

Layout

  • Grid: 12px base unit
  • Border Radius: 16px (cards), 8px (buttons)
  • Spacing: Multiples of 12px
  • Animations: 0.3s ease-out

πŸ”§ Technology Stack

Backend

  • Framework: Django 5.2.6
  • API: Django REST Framework
  • Auth: SimpleJWT with token blacklist
  • Database: PostgreSQL (prod), SQLite (dev)
  • Cache: Redis
  • Task Queue: Celery (future enhancement)

Frontend

  • Framework: React 18
  • Build: Vite
  • Styling: Vanilla CSS with design tokens
  • State: React hooks
  • Routing: React Router (to be integrated)

Infrastructure

  • Containerization: Docker + Docker Compose
  • Web Server: Nginx
  • WSGI: Gunicorn
  • CI/CD: GitHub Actions
  • Monitoring: Health checks, Sentry integration
  • Load Testing: k6

πŸ“š Documentation


πŸ§ͺ Testing

Run Backend Tests

python manage.py test
pytest  # With coverage

Run Load Tests

k6 run load-test.js

Run E2E Tests

cd frontend
npm run test:e2e

🚒 Deployment

Using Docker (Production)

  1. Set environment variables in .env
  2. Build and deploy:
    docker-compose -f docker-compose.yml up -d
  3. Run migrations:
    docker-compose exec backend python manage.py migrate
    docker-compose exec backend python manage.py collectstatic --noinput
  4. Create admin user:
    docker-compose exec backend python manage.py createsuperuser

Using Cloud Platforms

See DEPLOYMENT.md for:

  • AWS/DigitalOcean/GCP setup
  • SSL certificate configuration
  • CI/CD pipeline setup
  • Monitoring and logging

πŸ”’ Security

  • βœ… JWT authentication with refresh tokens
  • βœ… Password reset with secure tokens
  • βœ… Email verification on registration
  • βœ… Rate limiting on auth endpoints (5/hour)
  • βœ… HTTPS enforced in production
  • βœ… CSRF protection enabled
  • βœ… XSS and SQL injection prevention
  • βœ… Secure headers (HSTS, X-Frame-Options)

πŸ“Š Performance

Load Testing Results

  • Target: 100 concurrent users
  • Response Time: p95 < 500ms
  • Throughput: 200+ req/s
  • Error Rate: < 1%

Optimization

  • Database query optimization with select_related
  • Redis caching for frequently accessed data
  • Nginx static file caching
  • Compressed assets with WhiteNoise
  • CDN-ready for media files (S3 compatible)

🀝 Contributing

This is a client project. For internal development:

  1. Create feature branch: git checkout -b feature/amazing-feature
  2. Commit changes: git commit -m 'Add amazing feature'
  3. Push to branch: git push origin feature/amazing-feature
  4. Create Pull Request

πŸ“ License

Proprietary - Copyright 2025 Mentara


πŸ™ Acknowledgments

  • Apple Design Language for inspiration
  • Django and React communities
  • All open-source contributors

πŸ“ž Support

For deployment support or questions:


Made with ❀️ for Physics Students

⬆ Back to Top

About

FREELANCE

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • JavaScript 60.9%
  • Python 27.9%
  • CSS 5.8%
  • HTML 3.6%
  • PowerShell 1.3%
  • Shell 0.4%
  • Dockerfile 0.1%