Skip to content
 
 

Latest commit

 

History

46 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI-Adaptive-Learning-System

AI Adaptive Learning System

Project Description

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.

Project Objectives

  • 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

System Features (Planned)

  • Student learning profiles
  • AI-based learning recommendations
  • Accessible learning materials
  • Progress tracking dashboard
  • Teacher feedback system

Project Documentation

Stakeholder and System Requirements Documentation for the System

Use Case Modeling and Test Case Development for the System

Agile User Stories, Backlog, and Sprint Planning for the System Objective

Kanban Board Customization

Custom Columns Added

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.


Labels Used

  • feature – New functionality
  • bug – Issues or defects
  • enhancement – Improvements

Task Management

  • 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)

Why These Customizations?

These changes improve:

  • Workflow visibility
  • Quality assurance tracking
  • Issue identification
  • Team accountability

This results in a more structured and efficient Agile process.

Object State Modeling and Activity Workflow Modeling

Traceability

  • 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

Domain Modeling and Class Diagram Development

From Class Diagrams to Code

with All Creational Patterns

Creational Patterns Used

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

Design Decisions

  • Builder used for flexible content creation
  • Singleton ensures one DB connection
  • Prototype reduces object creation cost

CHANGELOG

  • Implemented core classes (User, Student, Content)
  • Added all creational patterns
  • Added unit tests for all patterns
  • Fixed Singleton thread safety
  • Linked issues to commits

Demo

Implementing a Persistence Repository Layer

Repository Layer Design

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

Service Layer and REST API Implementation

  • Added UserService, ContentService, RecommendationService
  • Implemented REST API endpoints
  • Integrated Swagger documentation
  • Added unit and integration tests Demo **
  • Demo **
  • Demo **
  • Demo **
  • Demo **
  • Demo **
  • Demo **

CI/CD Pipeline

This project uses GitHub Actions for Continuous Integration and Continuous Deployment (CI/CD).

Pipeline Features

  • 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

Branch Protection Setup

Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo Demo

Test results in GitHub Actions

Demo Demo

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

Tech Stack

  • 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

Getting Started

Follow these steps to set up and run the project locally.

Prerequisites

Ensure the following are installed:

  • Java JDK 17 or higher
  • Maven 3.8+
  • Git

Verify installations:

java -version
mvn -version
git --version

Installation

Clone the repository:

git clone https://github.com/your-username/your-repo.git
cd your-repo

Build the Project

Compile and package the application:

mvn clean install

Run the Application

If this is a standard Java application:

mvn exec:java

If this is a Spring Boot application:

mvn spring-boot:run

Testing

Run unit tests using:

mvn test

Features for Contribution

The 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

CI/CD (GitHub Actions)

This project supports automated build and test pipelines using GitHub Actions.

Workflow includes:

  • Build with Maven
  • Run unit tests
  • Package artifact (JAR)

Contribution Guidelines

  1. Fork the repository
  2. Create a feature branch:
    git checkout -b feature/your-feature-name
  3. Commit changes with clear messages
  4. Push to your fork
  5. Open a Pull Request

Author

Rodrigue Ndzana Ngonga Beaubane-- 219384096

About

No description, website, or topics provided.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages