The AI Adaptive Learning System is a web-based platform designed to support students with disabilities by providing personalized learning experiences. The system uses Artificial Intelligence to analyze student learning behaviour and adapt learning materials according to individual needs.
The platform will allow students to access accessible learning resources while helping educators monitor progress and identify learning difficulties early. This project is built using Java (Maven-based build system) and follows standard software engineering practices including modular design, testing, and CI/CD integration.
- Provide adaptive learning support for students with disabilities
- Improve accessibility to digital learning platforms
- Personalize learning content using Artificial Intelligence
- Enable educators to monitor student learning progress
- Student learning profiles
- AI-based learning recommendations
- Accessible learning materials
- Progress tracking dashboard
- Teacher feedback system
- System Specification
- System Architecture
- Stakeholder Analysis Table
- System Requirements Document
- Reflection
To better reflect the development workflow, the following columns were added:
-
Testing
Ensures all features are validated before completion. -
Blocked
Identifies tasks that are delayed due to dependencies or issues.
feature– New functionalitybug– Issues or defectsenhancement– Improvements
- User stories from Assignment 6 were converted into GitHub Issues
- Issues are linked directly to the Kanban board
- Tasks are assigned using @mentions myself (Rodrigue Ndzana)
These changes improve:
- Workflow visibility
- Quality assurance tracking
- Issue identification
- Team accountability
This results in a more structured and efficient Agile process.
- State Modeling with State Transition Diagrams
- Activity Workflow Modeling with Activity Diagrams
- Reflection
- FR-01 -> User Account State + Login Workflow
- FR-02 -> Profile State + Profile Workflow
- FR-03 -> Recommendation State + AI Workflow
- FR-04 -> Content State + Content Access Workflow
- FR-05 -> Dashboard State + Progress Workflow
- FR-07 -> Alert State + Alert Workflow
- FR-10 -> Content Upload State + Upload Workflow
with All Creational Patterns
| Pattern | Purpose |
|---|---|
| Simple Factory | Centralized content creation |
| Factory Method | Notification creation |
| Abstract Factory | Cross-platform UI |
| Builder | Complex content construction |
| Prototype | Efficient cloning |
| Singleton | Database connection |
- Builder used for flexible content creation
- Singleton ensures one DB connection
- Prototype reduces object creation cost
- Implemented core classes (User, Student, Content)
- Added all creational patterns
- Added unit tests for all patterns
- Fixed Singleton thread safety
- Linked issues to commits
The repository layer abstracts data storage using a generic interface:
- Repository<T, ID> provides CRUD operations
- InMemoryStudentRepository uses HashMap for fast testing
- RepositoryFactory enables switching between storage types
- Future database implementation is supported via stub classes
This design ensures:
- Separation of concerns
- Scalability
- Testability
- Added UserService, ContentService, RecommendationService
- Implemented REST API endpoints
- Integrated Swagger documentation
- Added unit and integration tests
**
**
**
**
**
**
**
This project uses GitHub Actions for Continuous Integration and Continuous Deployment (CI/CD).
- Automatically builds the project on every push
- Runs all unit and integration tests
- Blocks pull request merges if tests fail
- Generates a JAR artifact when merged into
main
| Phase | Artifact | Purpose |
|---|---|---|
| Specification | Assignment 3 | system specitfication and architecture design |
| Requirements | Assignment 4 | Defines system functionality |
| Analysis | Assignment 5 | Models user interactions |
| Agile Planning | Assignment 6 | Breaks system into tasks |
| Workflow | Assignment 7 | Tracks development progress |
| Behavior Modeling | Assignment 8 | Defines system workflows |
| Structure Modeling | Assignment 9 | Defines system architecture |
| Design Decisions | Assignment 10 | Implementation of design pattern |
| Repository Layer Design | Assignment 11 | creation of CRUID |
- Language: Java (JDK 17+ recommended)
- Build Tool: Maven
- Testing: JUnit 5
- Logging: SLF4J (with Logback or Log4j binding)
- Version Control: Git & GitHub
- CI/CD: GitHub Actions
Follow these steps to set up and run the project locally.
Ensure the following are installed:
- Java JDK 17 or higher
- Maven 3.8+
- Git
Verify installations:
java -version
mvn -version
git --versionClone the repository:
git clone https://github.com/your-username/your-repo.git
cd your-repoCompile and package the application:
mvn clean installIf this is a standard Java application:
mvn exec:javaIf this is a Spring Boot application:
mvn spring-boot:runRun unit tests using:
mvn testThe following areas are open for contributors:
| Feature Area | Description | Contribution Type |
|---|---|---|
| Authentication | Improve login/signup logic and security | Feature Request |
| API Layer | Extend REST endpoints and integrations | Feature Request |
| Logging System | Fix SLF4J conflicts and improve logging consistency | Bug Fix |
| Testing | Increase JUnit test coverage | Good First Issue |
| Documentation | Improve README and code comments | Good First Issue |
| CI/CD Pipeline | Enhance GitHub Actions workflow | Feature / DevOps |
This project supports automated build and test pipelines using GitHub Actions.
Workflow includes:
- Build with Maven
- Run unit tests
- Package artifact (JAR)
- Fork the repository
- Create a feature branch:
git checkout -b feature/your-feature-name
- Commit changes with clear messages
- Push to your fork
- Open a Pull Request
Rodrigue Ndzana Ngonga Beaubane-- 219384096














