https://github.com/vezem1r/altester
Altester is a robust and scalable educational platform developed as part of a bachelor's thesis, built using a microservices architecture. Designed for educational institutions, it optimizes the entire test lifecycle - from creation and distribution to AI-powered evaluation.
https://github.com/vezem1r/altester
bachelor-thesis docker docker-compose environment-variables java jwt-authentication langchain4j ldap microservices postgresql react real-time-chat real-time-notifications redis spring-mail springboot springsecurity websocket websockets
Last synced: 2 months ago
JSON representation
Altester is a robust and scalable educational platform developed as part of a bachelor's thesis, built using a microservices architecture. Designed for educational institutions, it optimizes the entire test lifecycle - from creation and distribution to AI-powered evaluation.
- Host: GitHub
- URL: https://github.com/vezem1r/altester
- Owner: Vezem1r
- Created: 2025-01-19T20:59:57.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-02-21T22:18:39.000Z (4 months ago)
- Last Synced: 2026-04-07T07:44:21.390Z (2 months ago)
- Topics: bachelor-thesis, docker, docker-compose, environment-variables, java, jwt-authentication, langchain4j, ldap, microservices, postgresql, react, real-time-chat, real-time-notifications, redis, spring-mail, springboot, springsecurity, websocket, websockets
- Language: JavaScript
- Homepage:
- Size: 5.21 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Altester




## 🔍 Overview
Altester is a robust and scalable educational platform developed as part of a bachelor's thesis, built using a microservices architecture. Designed for educational institutions, it optimizes the entire test lifecycle - from creation and distribution to AI-powered evaluation.
### Key Features
- **AI-Powered Grading** - Automated assessment with multiple AI models
- **Real-time Communication** - Instant messaging between students and teachers
- **Advanced Test Management** - Comprehensive test creation and administration
- **Role-Based Access** - Tailored experiences for administrators, teachers, and students
- **Enterprise Integration** - LDAP support for institutional deployment
## 📚 Documentation
- [Setup and Installation Guide](https://github.com/Vezem1r/Altester/wiki/Setup-and-Installation-Guide)
- [Environment Configuration](https://github.com/Vezem1r/Altester/wiki/Environment-Setup)
- [API Documentation](https://github.com/Vezem1r/Altester/wiki/API-Documentation)
- [System Architecture](https://github.com/Vezem1r/Altester/wiki/Architecture-Overview)
## 🛠️ Technology Stack
Backend Technologies
| Technology | Purpose |
|------------|---------|
| **Java 21** | Core language for all microservices |
| **Spring Boot 3.4.5** | Application framework with consistent version across services |
| **Spring Security** | Authentication and authorization framework |
| **Spring Data JPA** | ORM for data access and persistence |
| **Spring Data LDAP** | LDAP directory integration |
| **PostgreSQL** | Primary relational database |
| **JWT (jjwt 0.11.5)** | Secure token-based authentication |
| **WebSockets** | Real-time bidirectional communication |
| **Redis** | High-performance caching layer |
| **LangChain4j 1.0.0-beta3** | Advanced AI integration framework |
| **Thymeleaf** | Template engine for email verification |
| **Spring Mail** | SMTP integration for notifications |
| **Jackson 2.15.2** | JSON processing library |
| **Spring Validation** | Request validation framework |
| **SpringDoc 2.8.6** | API documentation generation |
| **Docker & Compose** | Containerization and orchestration |
Frontend Technologies
| Technology | Purpose |
|------------|---------|
| **React** | Modern UI library |
| **WebSocket Client** | Real-time communication |
## 🧩 Microservices Architecture
1. Authorization Service
**Core Responsibilities:**
- User registration and account management
- Dual authentication methods:
- Local username/password authentication
- LDAP integration for enterprise environments
- Secure password management (reset, change) for local users
- Email management with verification
- OTP-based verification for all critical actions
- JWT token generation and management
- SMTP integration for all verification workflows
2. Chat Service
**Core Responsibilities:**
- Real-time messaging between platform users
- Role-restricted communication channels:
- Students can only message their assigned teachers
- Teachers can message students in their assigned groups
- Conversation history and management
- WebSocket security with custom interceptors
- User online/offline status tracking
- Message read status indicators
- "User is typing" live indicators
3. Notification Service
**Core Responsibilities:**
- System-wide notifications delivery
- User-specific alerts and messages
- Real-time delivery via WebSockets
- Notification history and management
4. AI Grading Service
**Core Responsibilities:**
- Automated assessment of free-text responses
- Support for multiple AI providers:
- OpenAI models
- Anthropic Claude
- Google Gemini
- DeepSeek
- Integration with test workflow
- Submission processing in contextual prompts
- Secure API key management for AI services
- Response parsing for extracting:
- Grades
- Detailed feedback
- Error explanations for students
5. Core Service
**Core Responsibilities:**
- Central business logic coordination
- Subject creation and management
- Semester validation and academic period handling
- Student duplication validation across groups
- Group creation and membership management
- Test creation and configuration:
- Question management (5 distinct formats)
- Test parameters and settings
- Time limits and attempt policies
- Test attempt lifecycle management:
- Starting tests
- Reconnecting to in-progress tests
- Saving partial results
- Completing attempts
- Sending grading requests to AI service
- Placeholder validation and injection prevention in prompts
- Role-based API key management
## 👥 User Roles and Features
Administrator
Teacher
Student
- Complete user management
- Subject & group management
- Test lifecycle management
- Question configuration
- Performance analytics
- API key management
- System configuration
- Access to assigned groups
- Test creation & management
- Student submission grading
- AI grade review
- Student communication
- Limited API key management
- Test participation
- Attempt resumption
- Test history access
- Teacher communication
- Notification reception
Administrator Detailed Features
- Comprehensive user management
- Student and teacher accounts
- LDAP integration (LDAP-imported accounts have immutable core properties)
- Subject and group management
- Creation, editing, and archiving
- Assignment of teachers to groups
- Semester configuration via environment variables
- Complete test lifecycle management
- Creation, updates, deletion
- Teacher assignment and permissions
- Question management across all 5 supported types:
- Text only
- Text + image
- Image only
- Multiple choice
- Multiple choice + image
- Student performance analytics by test and group
- System-wide configuration and monitoring
- API key management
Teacher Detailed Features
- Access to assigned groups and students
- Test creation and management
- Create new tests
- Edit owned or delegated tests
- Configure question parameters
- Student submission evaluation
- Manual grading
- Review of AI-graded submissions
- Real-time communication with students
- Notification reception for relevant events
- Limited API key management
Student Detailed Features
- Access to current semester groups and subjects
- Test participation
- Take active tests
- Resume attempts within configured time limits
- Submit answers for evaluation
- View comprehensive test history across semesters
- Real-time communication with assigned teachers
- System and test notifications
## 🌐 Universal Features
Account Management
Self-service password & email updates
Real-time Notifications
Instant updates and alerts
Data Pagination
Efficient data management
## ⚙️ Environment Configuration
Application is configured via environment variables in `.env` file. See our [detailed configuration guide](https://github.com/Vezem1r/Altester/wiki/Environment-Setup) for all options.
```bash
# Quick start configuration example
cp .env.example .env
# Edit your .env file with appropriate values
nano .env
# Also configure frontend environment as needed
cp ./fronend/.env.example ./frontend/.env
nano ./fronend/.env
# Start the services
docker-compose up -d
```
## 🚀 Getting Started
```bash
# Clone the repository
git clone https://github.com/Vezem1r/Altester.git
cd Altester
# Configure environment
cp .env.example .env
cp ./fronend/.env.example .env
# Edit variables as needed
# Build and run
docker-compose build
docker-compose up -d
# Access the application
open http://localhost:5173
```
## 🛠️ Next Steps
These are the enhancements to further improve Altester's architecture and performance:
1. AI Feature Implementation
**Planned Features:**
- Teacher can request AI regrade for concrete test
- Teacher can generate questions for test using AI
2. API Gateway Implementation
**Planned Features:**
- Centralized request routing for all microservices
- Rate limiting to prevent abuse and ensure fair usage
- Load balancing
3. Advanced Cache Management
**Improvements:**
- Granular cache invalidation strategies
- Update specific cache entries instead of full purge
4. Future Enhancements
**Under Consideration:**
- Kubernetes orchestration for better scalability
- GraphQL API alongside REST
- Machine learning for predictive test difficulty adjustment
API Gateway
2025
Cache Optimization
2025
Future Features
Ongoing