Z User 231d8449e7 Add Environment & Archive module: Eco metrics, Digital Archive, Government Portal, NAS settings
New Module: 'Umwelt & Archiv' (Eco & Archive) — 4 tabs:

1. Umwelt (Eco Dashboard):
   - Paper savings tracker (sheets, grams, CO2, water, trees)
   - Monthly trend bar chart
   - Hero card with environmental mission statement
   - EcoMetric model: daily tracking of paper/CO2/water/trees saved

2. Archiv (Digital Archive):
   - Full-text searchable document archive (OCR text search)
   - Document types: Report Card, Certificate, Enrollment, Letter, Contract
   - Categories: Student, Staff, Finance, Admin, Legal
   - Confidential documents with lock indicator
   - Upload dialog with drag-and-drop area
   - ArchivedDocument model with checksum, retention date, access level

3. Behörden (Government Portal):
   - Report types: Schulstatistik, Schulbesuch, Förderung, Personal, Bildungsbericht
   - Status tracking: DRAFT → SUBMITTED → ACKNOWLEDGED/REJECTED
   - Info box about German government portal integration
   - GovernmentReport model with submission tracking

4. Speicher (NAS/Storage Settings):
   - NAS server connection (SMB/NFS/WebDAV/S3)
   - Host, port, share, credentials configuration
   - Backup frequency (hourly/daily/weekly)
   - Optional cloud backup (Nextcloud/ownCloud/S3)
   - StorageConfig model

New Prisma models: ArchivedDocument, GovernmentReport, EcoMetric, StorageConfig
New API routes: /api/archived-documents, /api/government-reports, /api/eco-metrics, /api/storage-config
New view: EcoArchiveView registered in nav, store, role-access
2026-09-06 18:47:48 +00:00
2026-08-02 17:58:35 +02:00
2026-08-03 11:16:50 +02:00
2026-08-02 12:56:02 +02:00

Schulos - Competence & Grading Platform

Free & open-source competence & grading platform for schools
Kompetenzorientierte Beurteilung für alle

Overview

Schulos is a comprehensive educational platform designed for schools to manage competence-based assessment, grading, and academic progress tracking. The system supports modern educational workflows with features for teachers, students, and administrators.

Key Features

🎓 Competence-Based Assessment

  • Skill-oriented evaluation framework
  • Mastery matrix for tracking progress
  • Competency templates and standards
  • Progressive assessment stages

👥 Multi-Role Access

  • Super Admin: Full system administration
  • School Admin: School-level management
  • Teacher: Class and student management
  • Student: Progress tracking and self-assessment
  • Parent: Child progress visibility
  • DPO: Data protection and compliance

📊 Comprehensive Analytics

  • Individual student progress tracking
  • Class and school-wide performance metrics
  • Trend analysis and reporting
  • Export capabilities (PDF, CSV, Excel)

🛡️ Security & Compliance

  • Role-based access control (RBAC)
  • GDPR compliance features
  • Data protection officer (DPO) controls
  • Audit logging
  • Two-factor authentication (2FA)

🔄 Workflow Management

  • Lesson planning and delivery
  • Assessment creation and grading
  • Homework and assignments
  • Attendance tracking
  • Behavior incident management

Technical Architecture

Technology Stack

  • Frontend: Next.js 16, React 19, TypeScript
  • Backend: Node.js, PostgreSQL/SQLite
  • Authentication: NextAuth.js with session management
  • Security: Argon2 password hashing, TOTP 2FA
  • Database: Prisma ORM with PostgreSQL/SQLite support
  • Real-time: WebSocket connections
  • Caching: Redis and memory caching
  • Deployment: Docker, Kubernetes support

Data Model

  • Students: Academic profiles, goals, progress
  • Teachers: Class assignments, grading, lesson plans
  • Schools: Districts, buildings, departments
  • Competencies: Skills, standards, assessment criteria
  • Assessments: Tests, quizzes, projects, rubrics

Quick Start

Prerequisites

# Clone repository
https://github.com/cetinmustafa83/schulos

# Install dependencies
npm install  # or pnpm install

# Environment variables
# Copy .env.example to .env and configure:
# - Database connection
# - Email settings (if needed)
# - Security configuration

Development Setup

# Start development server
npm run dev

# Database setup
npm run db:generate          # Generate Prisma client
npm run db:migrate           # Create migrations
npm run db:seed              # Load demo data

# Type checking
npm run typecheck

# Linting
npm run lint

Production Deployment

# Build for production
npm run build

# Start production server
npm run start

# Database setup (production)
npm run db:push          # Push schema to database
npm run db:setup-demo   # Set up demo environment

# Docker deployment (recommended)
docker-compose up -d

API Documentation

Authentication

  • POST /api/auth - Login, register, request password reset, reset password
  • GET /api/auth - Get current session user
  • POST /api/auth/logout - Logout user

Key Endpoints

  • GET /api/dashboard - User dashboard data
  • GET /api/students - List students
  • GET /api/classes - List classes
  • GET /api/assignments - List assignments
  • POST /api/grading - Submit grades

API Authentication

All endpoints require authentication via session cookie. Role-based access control enforced.

Security Features

Authentication

  • Session Management: Secure HTTP-only cookies with expiration
  • Password Security: Argon2id with high memory cost, automatic migration from bcrypt
  • Two-Factor Authentication: TOTP with recovery codes
  • Rate Limiting: Prevents brute force attacks
  • Secure Cookies: HTTP-only, secure flag based on environment

Access Control

  • Role-Based Access Control: SUPER_ADMIN, SCHOOL_ADMIN, TEACHER, STUDENT, PARENT, DPO
  • Data Isolation: Users can only access their own school's data
  • Compliance Controls: DPO can access all data for compliance purposes
  • Audit Logging: All data access logged for compliance

Compliance

  • GDPR Support: Data export, erasure requests
  • Data Protection Officer: Dedicated compliance role
  • Audit Logs: Complete audit trail of data access
  • Privacy Controls: Fine-grained data access permissions

Configuration

Environment Variables

# Database
DATABASE_URL=file:./db/schulos.db

# Security
SESSION_MAX_AGE_SECONDS=604800
PASSWORD_RESET_TTL_SECONDS=3600
AUTH_REQUIRE_EMAIL_VERIFICATION=false
AUTH_TOTP_ENABLED=true

# Application
NEXT_PUBLIC_APP_URL=http://localhost:3000
NODE_ENV=production

# Storage
STORAGE_PATH=./data/uploads
EXPORT_PATH=./data/exports
BACKUP_PATH=./data/backups

# Email (optional)
SMTP_HOST=
SMTP_PORT=587
SMTP_USER=
SMTP_PASSWORD=
SMTP_FROM=

# AI Features (optional)
AI_ENABLED=false
AI_PROVIDER=
AI_API_KEY=

Directory Structure

/docs/           - Documentation and guides
/prisma/         - Database schema and migrations
/src/            - Application source code
/public/         - Static assets
/scripts/        - Deployment and utility scripts
/data/           - Generated data and exports
prisma/db/       - Database files

Development

Code Quality

  • TypeScript: Strict mode enabled
  • Linting: ESLint with Next.js configuration
  • Testing: Bun test framework, Playwright e2e
  • Code Reviews: PR reviews with checklists

Development Workflow

  1. Feature Development: Create new features with tests
  2. Code Review: Submit PR for peer review
  3. Testing: Run unit and integration tests
  4. Quality Assurance: Check linting and type safety
  5. Deployment: CI/CD pipeline with automated testing

Running Tests

# Unit tests
npm run test

# E2E tests
npm run test:e2e

# Code quality checks
npm run lint
npm run typecheck

Deployment

Self-Hosting

# Using Docker Compose
docker-compose up -d

# Manual deployment
npm run build
npm run start

Production Considerations

  • SSL/TLS: Configure HTTPS for all connections
  • Load Balancing: Behind nginx or equivalent
  • Backups: Regular database backups
  • Monitoring: Application monitoring and logging
  • Scaling: Horizontal scaling support

Contributing

Development Guidelines

  • Follow Module L code review standards
  • Write comprehensive tests for new features
  • Update documentation for API changes
  • Maintain backward compatibility

Project Structure

  • Modules: Organized by feature and responsibility
  • Access Control: Centralized security logic
  • Testing: Comprehensive test coverage
  • Documentation: Living documentation in /docs/

Support & Community

Documentation

  • Full API documentation: /docs/API_IMPLEMENTATION_GUIDE.md
  • Architecture: /docs/ARCHITECTURE.md
  • Self-hosting: /docs/SELF_HOSTING.md

Community

License

This project is licensed under the MIT License.

Contact

Project Lead

Support

For technical support and community questions:

  • File issues on GitHub
  • Check documentation in /docs/
  • Join community discussions

Acknowledgments

Special thanks to the open-source community and contributors who have made this educational platform possible.


Last Updated: $(date +'%Y-%m-%d') This documentation is maintained as part of the Schulos project.

Getting Started Quickly

1-Minute Setup

# Clone and start
https://github.com/cetinmustafa83/schulos

cd schulos
npm run dev

5-Minute Demo

The system includes demo data for exploration:

  • School: "Test Academy"
  • Teacher: "Demo Teacher"
  • Students: Multiple test students
  • Sample assessments and grades

Visit http://localhost:3000 and use demo credentials:

  • Email: demo@schulos.dev
  • Password: demodemo

Next Steps

  1. Explore Features: Try the demo account
  2. Set Up Production: Configure environment variables
  3. Customize: Modify for your school needs
  4. Train Users: Use provided documentation
  5. Contact Support: Reach out for assistance

This README was generated to provide comprehensive project documentation. For more detailed information, refer to the comprehensive documentation in /docs/.

Project Status

✅ Ready for Production
📚 Complete Documentation
🔒 Security Audited
⚡ Performance Optimized
🎓 Educational Focus


This platform is continuously evolving. Report issues and suggest features to improve the educational experience.


Need help? Check our documentation in /docs/ or visit our GitHub repository.

Contribute? Fork this repository and submit pull requests following our contribution guidelines.

Languages
TypeScript 97.9%
CSS 1.5%
JavaScript 0.6%