AiDA (Artificial Intelligence Digital Assistant) is an enterprise-grade Learning Management System being built to use Generative AI for real-time personalized tutoring.
AiDA follows a Domain-Driven Design (DDD) approach with a clear separation of concerns.
graph TD
User((User)) -->|HTTPS / JSON| API_Gateway["API Gateway / Controller"]
subgraph "Core Backend (Spring Boot)"
API_Gateway -->|Validate Token| Security["Security Config (Stateless)"]
Security -->|Authorized| Service["Learning Service"]
Service -->|Read/Write| Repository["JPA Repository"]
end
subgraph "Data Persistence"
Repository <-->|JDBC| DB[("PostgreSQL")]
DB <-->|Cache| Redis[("Redis Cache")]
end
subgraph "AI Integration"
Service -->|Prompt Engineering| AI_Client["OpenAI Service"]
AI_Client <-->|REST| GPT["OpenAI API"]
end
| Component | Technology | Description |
|---|---|---|
| Language | Java 21 | Utilizing Records, Pattern Matching, and Virtual Threads. |
| Framework | Spring Boot 3.2 | Rapid backend development with Dependency Injection. |
| Database | PostgreSQL | Relational data integrity for user and course management. |
| Security | Spring Security 6 | OAuth2 Resource Server & JWT Authentication. |
| AI Engine | OpenAI GPT-4 | Dynamic quiz generation and context-aware tutoring. |
| Container | Docker | Consistent deployment across environments. |
- Implementation of JWT (JSON Web Tokens) for stateless session management.
- Role-Based Access Control (RBAC) distinguishing between
STUDENT,INSTRUCTOR, andADMIN.
- Dynamic Quiz Generation: System analyzes course text and generates 5 unique questions on-the-fly.
- Explanation Engine: Uses RAG (Retrieval-Augmented Generation) to explain incorrect answers to students.
- Leveraging Java 21 Virtual Threads for high-throughput concurrency handling.
- Optimized SQL queries using Hibernate/JPA projections.
- Secure AI chat available only to authenticated users
- Protected by Spring Security
- Fully tested (backend + frontend)
- Initial Project Setup & Docker Configuration
- Database Schema Design (PostgreSQL)
- Implement Spring Security Filter Chain
- Connect OpenAI API Client
- Build Frontend Dashboard (React)
Created by Elchibek Dastanov