An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

# Altester

![Version](https://img.shields.io/badge/version-1.0.0-blue)
![Spring Boot](https://img.shields.io/badge/Spring%20Boot-3.4.5-brightgreen)
![Java](https://img.shields.io/badge/Java-21-orange)
![License](https://img.shields.io/badge/license-MIT-green)

## 🔍 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.


Image


💻 Demo Platform



Live Demo

Best viewed on desktop/laptop devices


### 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

Administrator


Teacher

Teacher


Student

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

Account Management

Self-service password & email updates


notifications

Real-time Notifications

Instant updates and alerts


pagination

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

API Gateway

2025


cache

Cache Optimization

2025


future

Future Features

Ongoing