Group Number: 14
| Student Name | Matriculation Number |
|---|---|
| Adebowale Hassanat Adebisi | 230805521 |
| Opadeji Abdullah Ololade | 210805095 |
| Oluwaleye Akinloluwa David | 210805089 |
| Okewunmi Adesola Arebecca | 210805040 |
| Odutona Onaolapo Alex | 210805157 |
| Oselukwue Charles Nonso | 210805157 |
| Akinbayo Okanmoyisioluwa Clinton | 210805025 |
Department:
Computer Science
University:
University of Lagos
Supervisor:
Dr. Rukayat Koleoso
Date of Submission:
March 2026
This report presents the comprehensive software development documentation for EduLearn, a Learning Management System (LMS) designed to address the growing need for accessible, user-friendly online education platforms in Nigerian universities. The project was conceived to bridge the technological gap in higher education by providing a robust platform that enables students to access course materials, submit assignments, and track their academic progress, while empowering lecturers to manage content, grade assignments, and monitor student engagement effectively.
The development process followed the Agile methodology, specifically the Scrum framework, allowing for iterative development and continuous stakeholder feedback. The system was built using modern web technologies including Laravel for the backend API, React.js for the frontend interface, and MySQL for database management. The project was executed within a three-month timeline (January 1 to March 31) with a budget of ₦5 million and a team comprising five developers, one project manager, and one UI/UX designer.
Key features implemented include secure user authentication with role-based access control, comprehensive course management, assignment submission and grading workflows, discussion forums for collaborative learning, and real-time notification systems. The report documents the complete software development lifecycle, from initial requirements gathering and system analysis through design, implementation, testing, and deployment.
Risk management strategies were employed to address challenges including potential API integration delays, scope creep, developer unavailability, and budget constraints. The project successfully delivered a functional LMS that meets the core requirements within the specified constraints, demonstrating effective project management practices and sound software engineering principles.
Keywords: Learning Management System, Agile Development, Software Engineering, Educational Technology, Web Application Development
-
CHAPTER ONE: INTRODUCTION
- 1.1 Background of the Study
- 1.2 Problem Statement
- 1.3 Aim and Objectives
- 1.4 Scope of the Project
- 1.5 Significance of the Project
- 1.6 Project Constraints
-
CHAPTER TWO: LITERATURE REVIEW
- 2.1 Overview of Learning Management Systems
- 2.2 Existing LMS Platforms
- 2.3 Challenges of LMS in Developing Countries
-
CHAPTER THREE: SYSTEM ANALYSIS
- 3.1 Stakeholder Analysis
- 3.2 Functional Requirements
- 3.3 Non-Functional Requirements
- 3.4 Use Case Descriptions
- 3.5 Risk Analysis and Mitigation Strategies
-
CHAPTER FOUR: SYSTEM DESIGN
- 4.1 System Architecture
- 4.2 Technology Stack Justification
- 4.3 Database Design
- 4.4 User Interface Design Overview
-
CHAPTER FIVE: IMPLEMENTATION
- 5.1 Agile Methodology Explanation
- 5.2 Sprint Planning
- 5.3 Development Tools and Environment
- 5.4 Version Control Strategy
-
CHAPTER SIX: TESTING AND DEPLOYMENT
- 6.1 Types of Testing Conducted
- 6.2 Testing Tools
- 6.3 Deployment Process
- 6.4 Hosting Environment
-
CHAPTER SEVEN: PROJECT MANAGEMENT
- 7.1 Work Breakdown Structure
- 7.2 Gantt Chart
- 7.3 Risk Management Plan
- 7.4 Resource Management
- 7.5 Budget Management and Client Communication
-
CHAPTER EIGHT: CONCLUSION AND RECOMMENDATIONS
- 8.1 Summary of Achievements
- 8.2 Limitations
- 8.3 Future Enhancements
-
REFERENCES
The global landscape of education has undergone a significant transformation in recent decades, driven largely by advances in information and communication technology (ICT). The emergence of electronic learning (e-learning) has revolutionised the traditional classroom paradigm, offering new possibilities for knowledge dissemination, student engagement, and educational accessibility. At the heart of this digital education revolution lies the Learning Management System (LMS), a software application designed to facilitate the administration, documentation, tracking, reporting, and delivery of educational courses and training programmes.
In Nigeria, the higher education sector has witnessed substantial growth, with over 170 universities serving millions of students across the country. However, this expansion has not been matched by a corresponding development in educational technology infrastructure. Many Nigerian universities continue to rely on traditional face-to-face teaching methods, with limited adoption of digital learning tools. This situation was brought into sharp focus during the COVID-19 pandemic, which exposed the critical need for robust online learning platforms that could ensure educational continuity during periods of disruption.
The concept of Learning Management Systems dates back to the late 1990s, with platforms such as Blackboard and WebCT pioneering the field. Since then, the LMS market has grown exponentially, with both proprietary and open-source solutions competing for adoption. Modern LMS platforms offer a wide range of features including course content management, assessment tools, communication facilities, progress tracking, and analytics. Despite the availability of these solutions, many institutions in developing countries, including Nigeria, face significant barriers to adoption, including cost, infrastructure limitations, and lack of technical expertise.
EduLearn emerged as a response to these challenges, conceived as a purpose-built LMS tailored to the specific needs and constraints of Nigerian universities. The platform aims to provide an affordable, user-friendly, and feature-rich solution that can be deployed with minimal infrastructure requirements while still delivering a comprehensive e-learning experience.
Nigerian universities face numerous challenges in adopting and implementing effective Learning Management Systems. These challenges can be categorised into several key areas:
Technological Infrastructure Limitations: Many Nigerian institutions lack the robust IT infrastructure necessary to support enterprise-level LMS platforms. Unreliable internet connectivity, inadequate server capacity, and limited access to computing devices among students create significant barriers to e-learning adoption.
Cost Constraints: Commercial LMS platforms such as Blackboard, Canvas, and D2L Brightspace carry substantial licensing fees that are often beyond the budgetary capacity of Nigerian universities. Even open-source alternatives like Moodle require significant investment in hosting, customisation, and technical support.
User Experience Challenges: Existing LMS platforms are often designed with Western educational contexts in mind, resulting in interfaces and workflows that may not align with the pedagogical practices and user expectations prevalent in Nigerian institutions. Complex navigation, overwhelming feature sets, and inadequate localisation contribute to low adoption rates among both lecturers and students.
Limited Integration Capabilities: Many universities operate legacy systems for student information management, examination processing, and administrative functions. The lack of seamless integration between these systems and available LMS platforms creates data silos and increases administrative burden.
Insufficient Training and Support: The successful implementation of any LMS requires comprehensive training for all user categories and ongoing technical support. Many Nigerian institutions lack the resources to provide adequate training, leading to underutilisation of LMS capabilities.
These challenges highlight the need for a purpose-built solution that addresses the specific requirements of Nigerian universities while operating within the constraints of available resources and infrastructure.
The primary aim of this project is to develop a comprehensive, user-friendly Learning Management System (EduLearn) that enables Nigerian universities to effectively deliver online education, manage academic content, and facilitate meaningful interaction between students and lecturers.
The specific objectives of the EduLearn project are as follows:
-
To design and implement a secure user authentication system that supports multiple user roles (students, lecturers, and administrators) with appropriate access controls and permissions.
-
To develop a comprehensive course management module that enables lecturers to create, organise, and deliver course content including text materials, multimedia resources, and external links.
-
To create an assignment submission and grading workflow that allows students to submit assignments electronically and enables lecturers to grade submissions, provide feedback, and manage grades efficiently.
-
To implement discussion forums that facilitate collaborative learning and enable asynchronous communication between students and lecturers within the context of specific courses.
-
To develop a real-time notification system that keeps users informed of important events such as new assignments, grade postings, forum responses, and announcements.
-
To ensure the system is responsive, accessible, and optimised for use across various devices and network conditions prevalent in Nigeria.
-
To deliver the project within the specified timeline and budget while maintaining high standards of code quality and system reliability.
The EduLearn Learning Management System encompasses the following functional areas:
User Management:
- User registration and account management
- Secure authentication with email verification
- Role-based access control (Student, Lecturer, Administrator)
- Profile management and password recovery
Course Management:
- Course creation and configuration
- Course enrolment (manual and self-enrolment)
- Content organisation using modules and lessons
- Support for various content types (text, PDF, video, links)
- Course progress tracking
Assignment Management:
- Assignment creation with due dates and instructions
- File upload submission
- Online grading with feedback
- Grade management and grade book
Discussion Forums:
- Course-specific discussion boards
- Thread creation and replies
- Moderation capabilities
- Search functionality
Notifications:
- Real-time in-app notifications
- Email notifications for critical events
- Notification preferences management
Reporting and Analytics:
- Student progress reports
- Course engagement analytics
- Basic administrative reports
The following features are explicitly excluded from the initial release of EduLearn:
- Video conferencing and live streaming capabilities
- Mobile native applications (iOS/Android)
- Integration with external payment gateways
- Advanced proctoring for online examinations
- Artificial intelligence-based learning recommendations
- SCORM/xAPI content package support
- Multi-tenancy for multiple institutions
The EduLearn project holds significant value for multiple stakeholders and contributes to the broader goals of educational advancement in Nigeria:
For Students: EduLearn provides students with flexible access to learning materials, enabling them to study at their own pace and convenience. The platform reduces the barriers imposed by physical distance, transportation challenges, and rigid scheduling, making education more accessible to a wider population. Students can track their progress, receive timely feedback on assignments, and engage with peers and instructors through discussion forums.
For Lecturers: The platform empowers lecturers with tools to efficiently manage their courses, reducing the administrative burden associated with traditional teaching methods. Features such as electronic assignment submission, online grading, and automated grade calculation save significant time while improving accuracy. Discussion forums extend the learning conversation beyond the classroom, enabling richer academic discourse.
For Universities: Institutions benefit from improved operational efficiency, reduced paper-based processes, and enhanced ability to monitor educational delivery. The platform provides valuable analytics that can inform pedagogical decisions and institutional planning. Additionally, a modern LMS enhances the institution's competitive positioning in attracting students who increasingly expect technology-enabled learning experiences.
For Nigerian Higher Education: At a national level, EduLearn contributes to the digital transformation of Nigerian higher education. The project demonstrates that locally developed solutions can address the unique challenges faced by Nigerian institutions, potentially reducing dependence on foreign software and retaining intellectual capital within the country. The platform also supports educational continuity during disruptions, as demonstrated by the COVID-19 pandemic's impact on traditional education delivery.
For the Software Development Community: This project serves as a case study in applying professional software engineering practices to address real-world challenges. The documentation and methodologies employed can serve as a reference for future software development projects in the educational technology sector.
The EduLearn project operates within several constraints that have influenced technical and managerial decisions throughout the development lifecycle:
The project has a fixed budget of ₦5,000,000 (Five Million Naira). This budget must cover all project costs including:
- Personnel costs (salaries/stipends for team members)
- Software licenses and subscriptions
- Cloud hosting and infrastructure
- Development tools and resources
- Testing and quality assurance
- Contingency allowance
The limited budget necessitates careful resource allocation and prioritisation of core features over nice-to-have enhancements. Open-source technologies were favoured where possible to minimise licensing costs.
The project must be completed within a three-month window (January 1 to March 31). This timeline includes all phases of the software development lifecycle:
- Requirements gathering and analysis
- System design
- Implementation and coding
- Testing and quality assurance
- Deployment and documentation
The compressed timeline requires efficient project management, parallel task execution where possible, and disciplined scope management to avoid delays.
The project team consists of:
- 5 Developers
- 1 Project Manager
- 1 UI/UX Designer
This team size limits the amount of work that can be undertaken concurrently and requires careful task allocation to balance workload and avoid bottlenecks. The absence of dedicated roles such as business analyst, quality assurance engineer, or DevOps specialist means team members must assume multiple responsibilities.
- The system must operate efficiently on moderate bandwidth connections
- The platform must support major web browsers (Chrome, Firefox, Safari, Edge)
- The solution must be deployable on affordable cloud hosting platforms
- The backend must be scalable to support potential growth in user base
Two significant risks were identified at project inception:
-
API Integration Delays: Third-party API integrations (email services, cloud storage) may experience delays due to documentation issues, rate limiting, or service disruptions.
-
Scope Creep: Stakeholders may request additional features during development, potentially impacting the timeline and budget.
These constraints collectively shaped the project approach, influencing technology choices, feature prioritisation, and risk management strategies.
A Learning Management System (LMS) is a software application or web-based technology used to plan, implement, and assess a specific learning process (Turnbull, Chugh, & Luck, 2019). The core purpose of an LMS is to provide educators and learners with a centralised platform for managing educational content, delivering instruction, tracking student progress, and facilitating communication.
The evolution of Learning Management Systems can be traced through several distinct generations (Pappas, 2019):
First Generation (1990s): Early LMS platforms emerged primarily as content repositories, allowing instructors to upload and organise course materials for student access. These systems offered limited interactivity and were largely one-directional in their communication model. Notable early platforms included PLATO (Programmed Logic for Automatic Teaching Operations) and FirstClass.
Second Generation (Late 1990s - 2000s): This era saw the emergence of commercial LMS platforms such as Blackboard and WebCT, as well as open-source alternatives like Moodle. These systems introduced more sophisticated features including discussion forums, assessment tools, and grade management. The Learning Technology Standards Committee (LTSC) and Advanced Distributed Learning (ADL) initiative established standards such as SCORM to enable content interoperability.
Third Generation (2010s): Cloud computing transformed the LMS landscape, enabling Software-as-a-Service (SaaS) deployment models that reduced the burden of on-premise infrastructure. Platforms such as Canvas, Schoology, and Google Classroom emerged, offering improved user experiences and mobile accessibility. This generation also saw increased emphasis on learning analytics and personalised learning pathways.
Fourth Generation (2020s - Present): Contemporary LMS development is characterised by the integration of artificial intelligence, adaptive learning technologies, and immersive experiences including virtual and augmented reality. The COVID-19 pandemic accelerated LMS adoption globally, driving innovation in areas such as video conferencing integration, proctored assessments, and engagement analytics.
Modern Learning Management Systems typically comprise the following functional components (Aldiab et al., 2019):
| Component | Description |
|---|---|
| User Management | Registration, authentication, role assignment, and profile management |
| Course Management | Creation, organisation, and delivery of course content |
| Content Authoring | Tools for creating and editing learning materials |
| Assessment Engine | Quizzes, assignments, rubrics, and grade management |
| Communication Tools | Discussion forums, messaging, announcements |
| Tracking & Reporting | Progress monitoring, completion tracking, analytics |
| Integration Layer | APIs for connecting with external systems |
The design of effective Learning Management Systems is informed by several educational theories:
Constructivism: This theory posits that learners actively construct knowledge through interaction with their environment. LMS features such as discussion forums, collaborative projects, and peer review support constructivist learning approaches (Jonassen, 1999).
Social Learning Theory: Bandura's social learning theory emphasises the importance of observation, imitation, and modeling in the learning process. LMS platforms support social learning through features that enable peer interaction and collaborative knowledge construction (Bandura, 1977).
Self-Regulated Learning: Zimmerman's model of self-regulated learning emphasises learner autonomy and metacognitive skills. LMS features such as progress tracking, goal setting, and self-paced modules support the development of self-regulation skills (Zimmerman, 2002).
The LMS market comprises a diverse ecosystem of proprietary and open-source platforms. This section provides a comparative analysis of leading platforms relevant to the Nigerian higher education context.
| Feature | Moodle | Canvas | Blackboard | Google Classroom |
|---|---|---|---|---|
| Licensing | Open Source (GPL) | Proprietary (SaaS) | Proprietary | Free (with Google account) |
| Cost | Free (hosting costs apply) | Subscription-based | Subscription-based | Free |
| Customisation | Highly customisable | Limited | Moderate | Very limited |
| Learning Curve | Steep | Moderate | Moderate | Easy |
| Mobile App | Available | Available | Available | Available |
| Offline Access | Limited | Limited | Limited | Limited |
| SCORM Support | Yes | Yes | Yes | No |
| Video Conferencing | Plugin required | Integrated | Integrated | Google Meet |
| Analytics | Basic (plugins available) | Advanced | Advanced | Basic |
Moodle: Moodle (Modular Object-Oriented Dynamic Learning Environment) is the world's most widely used open-source LMS, with over 300 million users across 240+ countries (Moodle, 2023). Its open-source nature makes it attractive to budget-constrained institutions. However, Moodle's complexity and steep learning curve have been cited as barriers to adoption. The platform requires significant technical expertise for installation, customisation, and maintenance. User interface criticisms are common, with many finding the default design dated and unintuitive.
Canvas: Canvas by Instructure has gained significant market share in higher education due to its modern interface and robust API ecosystem. The platform is praised for its intuitive design and comprehensive feature set. However, its subscription-based pricing model places it beyond the reach of many Nigerian institutions. Canvas excels in areas such as analytics and mobile experience, setting a high benchmark for user expectations.
Blackboard Learn: Blackboard has been a dominant player in the LMS market for over two decades. The platform offers comprehensive functionality and is widely used in universities globally. However, Blackboard has faced criticism for its complex interface and high total cost of ownership. Recent corporate changes and platform transitions have created uncertainty among some users.
Google Classroom: Google Classroom has emerged as a popular option, particularly for institutions already using Google Workspace. Its simplicity and zero licensing cost are attractive. However, Google Classroom lacks the depth of features found in dedicated LMS platforms, particularly in areas such as advanced assessment options, SCORM compliance, and detailed analytics.
The analysis of existing platforms reveals several opportunities for EduLearn:
-
User Experience Focus: Complex interfaces are a common criticism of established platforms. EduLearn can differentiate by prioritising simplicity and intuitive design.
-
Cost Effectiveness: By developing a custom solution within a controlled budget, EduLearn can offer an affordable alternative to expensive commercial platforms.
-
Local Context: EduLearn can be designed with Nigerian educational practices in mind, avoiding the cultural mismatches that can occur with foreign platforms.
-
Appropriate Feature Set: Rather than attempting to match the comprehensive feature sets of mature platforms, EduLearn can focus on core functionality that addresses immediate needs.
The adoption and effective utilisation of Learning Management Systems in developing countries face unique challenges that differ significantly from the experiences of institutions in developed nations (Mtebe, 2015).
Internet Connectivity: Reliable, high-speed internet access remains a significant challenge across many developing countries. In Nigeria, while internet penetration has grown substantially, quality of service varies widely. Many students rely on mobile data connections, which may be expensive, unreliable, or subject to bandwidth limitations. LMS platforms designed for high-bandwidth environments may perform poorly under these conditions.
Power Supply: Inconsistent electricity supply affects both institutional infrastructure and individual student access. Universities may struggle to maintain server uptime, while students may find their study schedule constrained by power availability.
Device Access: While smartphone penetration has increased, access to computers remains limited for many students. LMS platforms must be optimised for mobile devices and should function effectively on lower-specification hardware.
Many institutions in developing countries operate under severe budgetary constraints. Allocating funds for educational technology competes with other pressing needs such as physical infrastructure, staffing, and basic educational resources. This constraint affects not only software licensing but also hardware procurement, bandwidth provision, and technical support.
Digital Literacy: Varying levels of digital literacy among both students and faculty present challenges for LMS adoption. While digital native students may adapt quickly, mature students and some faculty members may struggle with technology-mediated learning.
Technical Support: Maintaining an LMS requires technical expertise that may be scarce in developing country contexts. Institutions may lack dedicated IT staff with the skills necessary for system administration, troubleshooting, and user support.
Change Management: Resistance to change can impede LMS adoption. Faculty accustomed to traditional teaching methods may be reluctant to invest time in learning new technologies, particularly if the benefits are not clearly demonstrated.
Teaching Tradition: Educational practices in many developing countries emphasise teacher-centred, lecture-based instruction. Shifting to the learner-centred approaches enabled by LMS platforms requires not just technical change but pedagogical transformation.
Content Development: Creating high-quality digital learning content is resource-intensive. Many institutions lack the capacity to develop the content necessary to fully exploit LMS capabilities, resulting in underutilisation of platform features.
Successful LMS implementation in developing countries requires strategies tailored to these challenges:
- Low-bandwidth optimisation: Minimising page sizes, supporting offline access, and avoiding heavy multimedia
- Mobile-first design: Ensuring full functionality on smartphone browsers
- Progressive complexity: Introducing features gradually to avoid overwhelming users
- Comprehensive training: Investing in user education and ongoing support
- Strong change management: Engaging stakeholders and demonstrating value
EduLearn's development was informed by these considerations, with architectural and design decisions specifically intended to address the challenges of the Nigerian context.
Stakeholder analysis is a critical component of requirements engineering, identifying all parties with an interest in the system and understanding their needs, expectations, and potential influence on the project (Alexander & Beus-Dukic, 2009).
| Stakeholder | Role | Interest Level | Influence Level |
|---|---|---|---|
| Students | Primary End Users | High | Medium |
| Lecturers | Primary End Users | High | High |
| University Administrators | System Managers | High | High |
| IT Department | Technical Support | Medium | Medium |
| University Management | Strategic Oversight | Medium | High |
| Parents/Guardians | Indirect Stakeholders | Low | Low |
| Accreditation Bodies | Regulatory Oversight | Low | Medium |
Students: Students represent the largest user group and are the primary beneficiaries of the system. Their key needs include easy access to course materials, clear assignment submission processes, timely feedback on their work, and effective communication channels with lecturers and peers. Students expect a modern, intuitive interface that works well on mobile devices. They are particularly sensitive to system reliability and ease of use.
Lecturers: Lecturers are critical stakeholders whose adoption of the system will determine its success. Their primary needs include efficient course content management, streamlined assignment collection and grading, and tools for monitoring student progress. Lecturers often have limited time for learning new systems, making ease of use particularly important. They require confidence that their content is secure and that the system will be reliable.
University Administrators: Administrative staff use the system to manage user accounts, oversee course offerings, and generate reports. They need tools for bulk user management, course allocation, and system monitoring. Administrators are concerned with policy compliance, data integrity, and the ability to respond to user support requests.
IT Department: IT staff are responsible for system deployment, maintenance, and technical support. They require clear documentation, straightforward deployment procedures, and effective monitoring tools. The IT department is concerned with system security, integration with existing infrastructure, and manageable support burden.
University Management: Senior university leadership has indirect but significant influence over the project. They are interested in the strategic benefits of the LMS, including institutional reputation, operational efficiency, and return on investment. Their support is essential for resource allocation and policy decisions.
| Stakeholder Group | Communication Method | Frequency | Responsible Party |
|---|---|---|---|
| Students | In-app announcements, Email | As needed | Project Manager |
| Lecturers | Training sessions, Email | Weekly during development | Project Manager, UI/UX Designer |
| Administrators | Status meetings | Bi-weekly | Project Manager |
| IT Department | Technical documentation, Meetings | Weekly | Lead Developer |
| Management | Executive summary reports | Monthly | Project Manager |
Functional requirements describe what the system must do, specifying the behaviours and functions that the software must provide (Sommerville, 2016).
| ID | Requirement | Priority |
|---|---|---|
| FR-AUTH-01 | The system shall allow users to register using email and password | High |
| FR-AUTH-02 | The system shall send email verification upon registration | High |
| FR-AUTH-03 | The system shall authenticate users using email and password credentials | High |
| FR-AUTH-04 | The system shall support password reset via email | High |
| FR-AUTH-05 | The system shall enforce role-based access control (Student, Lecturer, Admin) | High |
| FR-AUTH-06 | The system shall maintain user session with configurable timeout | Medium |
| FR-AUTH-07 | The system shall log all authentication events | Medium |
| ID | Requirement | Priority |
|---|---|---|
| FR-CRS-01 | Lecturers shall be able to create new courses with title, description, and code | High |
| FR-CRS-02 | Lecturers shall be able to organise course content into modules and lessons | High |
| FR-CRS-03 | The system shall support upload of various content types (PDF, DOC, video links) | High |
| FR-CRS-04 | Students shall be able to browse and enrol in available courses | High |
| FR-CRS-05 | Lecturers shall be able to manually enrol students in courses | High |
| FR-CRS-06 | The system shall track student progress through course content | Medium |
| FR-CRS-07 | Lecturers shall be able to archive completed courses | Low |
| ID | Requirement | Priority |
|---|---|---|
| FR-ASN-01 | Lecturers shall be able to create assignments with title, instructions, and due date | High |
| FR-ASN-02 | Students shall be able to submit files for assignments | High |
| FR-ASN-03 | The system shall prevent submissions after the due date (configurable) | High |
| FR-ASN-04 | Lecturers shall be able to view and download student submissions | High |
| FR-ASN-05 | Lecturers shall be able to assign grades and provide feedback | High |
| FR-ASN-06 | Students shall be able to view their grades and feedback | High |
| FR-ASN-07 | The system shall maintain a gradebook with calculated totals/averages | Medium |
| ID | Requirement | Priority |
|---|---|---|
| FR-FOR-01 | The system shall provide course-specific discussion forums | High |
| FR-FOR-02 | Users shall be able to create new discussion threads | High |
| FR-FOR-03 | Users shall be able to reply to existing threads | High |
| FR-FOR-04 | Lecturers shall have moderation capabilities (edit, delete, pin threads) | Medium |
| FR-FOR-05 | Users shall be able to search forum content | Low |
| ID | Requirement | Priority |
|---|---|---|
| FR-NOT-01 | The system shall send real-time notifications for new assignments | High |
| FR-NOT-02 | The system shall notify students when grades are posted | High |
| FR-NOT-03 | The system shall notify users of new forum replies | Medium |
| FR-NOT-04 | The system shall send email notifications for critical events | Medium |
| FR-NOT-05 | Users shall be able to configure notification preferences | Low |
| ID | Requirement | Priority |
|---|---|---|
| FR-ADM-01 | Administrators shall be able to manage user accounts | High |
| FR-ADM-02 | Administrators shall be able to assign and modify user roles | High |
| FR-ADM-03 | The system shall provide system-wide announcements capability | Medium |
| FR-ADM-04 | The system shall generate usage and activity reports | Low |
Non-functional requirements specify criteria for judging the operation of a system rather than specific behaviours (ISO/IEC 25010, 2011).
| ID | Requirement |
|---|---|
| NFR-PERF-01 | Page load time shall not exceed 3 seconds under normal conditions |
| NFR-PERF-02 | The system shall support at least 500 concurrent users |
| NFR-PERF-03 | API response time shall not exceed 500 milliseconds for standard operations |
| NFR-PERF-04 | File uploads of up to 50MB shall be supported |
| ID | Requirement |
|---|---|
| NFR-SEC-01 | All data transmission shall be encrypted using HTTPS/TLS |
| NFR-SEC-02 | Passwords shall be hashed using industry-standard algorithms (bcrypt) |
| NFR-SEC-03 | The system shall implement protection against common vulnerabilities (SQL injection, XSS, CSRF) |
| NFR-SEC-04 | User sessions shall timeout after 30 minutes of inactivity |
| NFR-SEC-05 | Failed login attempts shall be rate-limited to prevent brute force attacks |
| ID | Requirement |
|---|---|
| NFR-USE-01 | The interface shall be responsive and functional on devices from 320px width |
| NFR-USE-02 | New users shall be able to perform basic tasks without training |
| NFR-USE-03 | The system shall conform to WCAG 2.1 Level AA accessibility guidelines |
| NFR-USE-04 | Error messages shall be clear and actionable |
| ID | Requirement |
|---|---|
| NFR-REL-01 | System availability shall be at least 99% during academic periods |
| NFR-REL-02 | Data shall be backed up daily with 30-day retention |
| NFR-REL-03 | The system shall recover from failures within 4 hours |
| ID | Requirement |
|---|---|
| NFR-SCA-01 | The architecture shall support horizontal scaling |
| NFR-SCA-02 | The system shall be designed to accommodate future feature additions |
Use cases describe the functional requirements of a system from the user's perspective, detailing the interactions between actors and the system to achieve specific goals.
| Element | Description |
|---|---|
| Use Case ID | UC-01 |
| Use Case Name | User Login |
| Actor(s) | Student, Lecturer, Administrator |
| Description | User authenticates to access the system |
| Preconditions | User has a registered, verified account |
| Main Flow | 1. User navigates to login page |
| 2. User enters email and password | |
| 3. System validates credentials | |
| 4. System creates session and redirects to dashboard | |
| Alternative Flow | 3a. Invalid credentials: System displays error message |
| 3b. Account locked: System displays lockout message | |
| Postconditions | User is authenticated and has access to role-appropriate features |
| Element | Description |
|---|---|
| Use Case ID | UC-02 |
| Use Case Name | Create Course |
| Actor(s) | Lecturer |
| Description | Lecturer creates a new course |
| Preconditions | Lecturer is authenticated |
| Main Flow | 1. Lecturer navigates to course management |
| 2. Lecturer clicks "Create New Course" | |
| 3. Lecturer enters course details (title, code, description) | |
| 4. Lecturer configures course settings | |
| 5. Lecturer clicks "Create" | |
| 6. System creates course and displays confirmation | |
| Alternative Flow | 4a. Duplicate course code: System prompts for different code |
| Postconditions | New course exists in the system |
| Element | Description |
|---|---|
| Use Case ID | UC-03 |
| Use Case Name | Submit Assignment |
| Actor(s) | Student |
| Description | Student submits work for an assignment |
| Preconditions | Student is enrolled in course; Assignment is open for submission |
| Main Flow | 1. Student navigates to assignment |
| 2. Student views assignment instructions | |
| 3. Student clicks "Submit" | |
| 4. Student uploads file(s) | |
| 5. Student clicks "Confirm Submission" | |
| 6. System records submission with timestamp | |
| 7. System displays confirmation | |
| Alternative Flow | 4a. File too large: System displays error |
| 4b. Past due date and late submissions disabled: System denies submission | |
| Postconditions | Assignment submission is recorded; Lecturer can view submission |
| Element | Description |
|---|---|
| Use Case ID | UC-04 |
| Use Case Name | Grade Assignment |
| Actor(s) | Lecturer |
| Description | Lecturer grades a student's assignment submission |
| Preconditions | Student has submitted assignment; Lecturer is course instructor |
| Main Flow | 1. Lecturer navigates to assignment submissions |
| 2. Lecturer selects a submission to grade | |
| 3. Lecturer downloads/views submitted file | |
| 4. Lecturer enters grade (numerical score) | |
| 5. Lecturer enters feedback comments | |
| 6. Lecturer clicks "Save Grade" | |
| 7. System records grade and notifies student | |
| Alternative Flow | None |
| Postconditions | Grade is recorded; Student receives notification |
| Element | Description |
|---|---|
| Use Case ID | UC-05 |
| Use Case Name | Post Forum Reply |
| Actor(s) | Student, Lecturer |
| Description | User responds to a discussion thread |
| Preconditions | User is enrolled in course; Thread exists |
| Main Flow | 1. User navigates to course discussion forum |
| 2. User opens existing thread | |
| 3. User types reply in text field | |
| 4. User clicks "Post Reply" | |
| 5. System saves reply with timestamp | |
| 6. System notifies thread participants | |
| Alternative Flow | 4a. Empty reply: System prompts user to enter content |
| Postconditions | Reply is visible in thread; Participants are notified |
Risk management is essential for software project success, involving the identification, assessment, and prioritisation of risks followed by coordinated effort to minimise, monitor, and control their probability or impact (PMI, 2017).
| Risk ID | Risk Description | Probability | Impact | Risk Level |
|---|---|---|---|---|
| R-01 | Third-party API integration delays | High | Medium | High |
| R-02 | Scope creep from stakeholder requests | High | High | Critical |
| R-03 | Developer illness or unavailability | Medium | High | High |
| R-04 | Budget cuts or funding issues | Medium | High | High |
| R-05 | Technical complexity underestimation | Medium | Medium | Medium |
| R-06 | Security vulnerability discovery | Low | High | Medium |
| R-07 | Key personnel departure | Low | High | Medium |
| R-08 | Infrastructure or hosting issues | Medium | Medium | Medium |
R-01: API Integration Delays
The integration of third-party services such as email delivery (SendGrid, Mailgun) or cloud storage may face delays due to documentation issues, rate limiting, or service disruptions.
Mitigation Strategies:
- Begin API integration early in the development cycle
- Implement abstraction layers to allow easy switching between providers
- Develop fallback mechanisms (e.g., queue emails for retry)
- Maintain relationships with alternative service providers
- Build in buffer time for integration testing
R-02: Scope Creep
Stakeholders may request additional features during development. For example, a request for video conferencing functionality emerged during the project.
Mitigation Strategies:
- Clearly document and communicate initial scope
- Implement formal change request process
- Evaluate all requests against timeline and budget impact
- Prioritise requests using MoSCoW method
- Educate stakeholders on trade-offs between scope, time, and cost
- Maintain a backlog for post-release enhancements
Specific Case - Video Conferencing Request: When stakeholders requested video conferencing functionality, the following response was provided:
"Video conferencing is a valuable feature that would enhance the platform significantly. However, implementing this feature would require approximately 4-6 additional weeks of development time, additional budget for real-time communication infrastructure, and expertise in WebRTC or similar technologies. We recommend documenting this as a Phase 2 enhancement for the next release cycle while ensuring the current architecture can accommodate future integration (e.g., embedding third-party solutions like Zoom or Google Meet)."
R-03: Developer Illness or Unavailability
The loss of a team member, even temporarily, can significantly impact project progress.
Mitigation Strategies:
- Cross-train team members on different components
- Maintain comprehensive documentation
- Use pair programming for critical features
- Ensure code is well-commented and follows standards
- Maintain a resource buffer in project schedule
Resource Adjustment Plan: If a developer becomes unavailable, the following adjustments will be made:
- Immediately assess impact on current sprint tasks
- Redistribute urgent tasks among remaining developers
- Prioritise critical path items
- Consider extending working hours temporarily (with compensation)
- Evaluate option of engaging a contract developer if absence extends beyond one week
- Adjust sprint scope and communicate revised timeline to stakeholders
R-04: Budget Cuts
Financial constraints may necessitate a reduction in project budget.
Mitigation Strategies:
- Identify must-have vs. nice-to-have features
- Maintain cost tracking and forecasting
- Develop contingency scenarios for different budget levels
- Communicate regularly with stakeholders on budget status
See Section 7.5 for detailed handling of 20% budget cut scenario.
R-05: Technical Complexity
Certain features may prove more complex to implement than initially estimated.
Mitigation Strategies:
- Conduct technical spikes early for uncertain areas
- Include contingency in estimates
- Use proven technologies and patterns
- Seek external expertise when needed
R-06: Security Vulnerabilities
Security issues discovered during development or testing could require significant rework.
Mitigation Strategies:
- Follow security best practices from project start
- Conduct regular security reviews
- Use automated security scanning tools
- Plan for security testing in project schedule
The EduLearn system employs a modern three-tier architecture that separates concerns between presentation, business logic, and data management layers. This architectural approach provides scalability, maintainability, and flexibility for future enhancements.
The system architecture consists of the following primary components:
Client Layer (Presentation Tier):
- Web browsers (Chrome, Firefox, Safari, Edge) accessing the React.js single-page application
- Responsive design serving both desktop and mobile users
- Progressive Web App (PWA) capabilities for improved mobile experience
Application Layer (Business Logic Tier):
- Laravel PHP framework providing RESTful API endpoints
- Authentication middleware handling security
- Business logic controllers processing user requests
- Queue workers handling background jobs (email sending, notifications)
Data Layer (Data Tier):
- MySQL database server for persistent data storage
- Redis cache for session management and performance optimisation
- File storage system for uploaded documents and media
External Services:
- Email service provider (SendGrid) for transactional emails
- Cloud storage (optional) for file backup
- CDN (optional) for static asset delivery
The system follows a client-server model where:
- Client browser sends HTTPS requests to the load balancer
- Load balancer distributes requests to web server (Nginx)
- Nginx forwards dynamic requests to Laravel Application Server
- Application server interacts with MySQL database, Redis cache, and file storage
- Background jobs are processed by queue workers
- Email notifications are sent through external email service
The RESTful API follows standard conventions with the following endpoint structure:
| Resource | Endpoint | Methods |
|---|---|---|
| Authentication | /api/auth/* |
POST (login, register, logout) |
| Users | /api/users/* |
GET, PUT, DELETE |
| Courses | /api/courses/* |
GET, POST, PUT, DELETE |
| Assignments | /api/courses/{id}/assignments/* |
GET, POST, PUT, DELETE |
| Submissions | /api/assignments/{id}/submissions/* |
GET, POST, PUT |
| Forums | /api/courses/{id}/forums/* |
GET, POST, PUT, DELETE |
| Notifications | /api/notifications/* |
GET, PUT |
All API responses follow a consistent JSON structure with appropriate HTTP status codes.
Justification:
- Mature ecosystem: Laravel is a well-established framework with extensive documentation, tutorials, and community support
- Rapid development: Built-in features such as Eloquent ORM, authentication scaffolding, and queue management accelerate development
- Security features: Laravel includes protection against common vulnerabilities (CSRF, SQL injection, XSS)
- Scalability: Laravel applications can be scaled horizontally using load balancers and queue workers
- Local expertise: PHP/Laravel developers are widely available in Nigeria, facilitating future maintenance
- Cost-effective hosting: PHP hosting is widely available and affordable compared to some alternatives
Justification:
- Component-based architecture: Promotes code reusability and maintainability
- Virtual DOM: Provides excellent performance for dynamic user interfaces
- Large ecosystem: Extensive library of third-party components and tools
- Developer experience: Hot reloading and excellent debugging tools improve productivity
- Industry standard: React is widely used, ensuring availability of developers for future maintenance
- Mobile responsiveness: React combined with CSS frameworks enables excellent mobile experiences
Justification:
- Reliability: MySQL is a proven, stable database system used by major web applications
- Performance: Excellent performance for read-heavy workloads typical of LMS applications
- Scalability: Supports replication and clustering for scaling
- Integration: Native integration with Laravel through Eloquent ORM
- Cost: Open-source with no licensing costs
- Tooling: Extensive management tools and GUI clients available
| Technology | Purpose | Justification |
|---|---|---|
| Redis | Caching, Sessions | High-performance in-memory store; improves response times |
| Nginx | Web Server | Efficient handling of static files and reverse proxy |
| Git | Version Control | Industry standard for collaborative development |
| Docker | Containerisation | Consistent development and deployment environments |
| PHPUnit | Testing | Laravel's native testing framework |
| Jest | Frontend Testing | Standard React testing framework |
The EduLearn database comprises the following primary entities and their relationships:
Core Entities:
-
Users
- Stores all user information regardless of role
- Attributes: id, name, email, password_hash, role, email_verified_at, profile_image, created_at, updated_at
- Relationships: One-to-Many with Courses (as instructor), Many-to-Many with Courses (as student)
-
Courses
- Represents individual courses offered on the platform
- Attributes: id, title, code, description, instructor_id, status, created_at, updated_at
- Relationships: Many-to-One with Users (instructor), Many-to-Many with Users (students), One-to-Many with Modules
-
Modules
- Organises course content into logical sections
- Attributes: id, course_id, title, order, created_at, updated_at
- Relationships: Many-to-One with Courses, One-to-Many with Lessons
-
Lessons
- Individual content items within modules
- Attributes: id, module_id, title, content_type, content, order, created_at, updated_at
- Relationships: Many-to-One with Modules
-
Assignments
- Assessment items created by instructors
- Attributes: id, course_id, title, instructions, due_date, max_score, allow_late, created_at, updated_at
- Relationships: Many-to-One with Courses, One-to-Many with Submissions
-
Submissions
- Student assignment submissions
- Attributes: id, assignment_id, student_id, file_path, submitted_at, grade, feedback, graded_at, graded_by
- Relationships: Many-to-One with Assignments, Many-to-One with Users
-
Forum_Threads
- Discussion topics within course forums
- Attributes: id, course_id, user_id, title, content, is_pinned, created_at, updated_at
- Relationships: Many-to-One with Courses, Many-to-One with Users, One-to-Many with Forum_Posts
-
Forum_Posts
- Replies to forum threads
- Attributes: id, thread_id, user_id, content, created_at, updated_at
- Relationships: Many-to-One with Forum_Threads, Many-to-One with Users
-
Notifications
- User notifications
- Attributes: id, user_id, type, message, data, read_at, created_at
- Relationships: Many-to-One with Users
-
Enrolments
- Junction table for course-student relationships
- Attributes: id, course_id, user_id, enrolled_at, status
- Relationships: Many-to-One with Courses, Many-to-One with Users
The database design adheres to Third Normal Form (3NF) to minimise redundancy and ensure data integrity. Key normalisation decisions include:
- Separating user roles into a single Users table with role attribute rather than separate tables
- Using junction tables for many-to-many relationships (Enrolments)
- Storing file references (paths) rather than binary data in the database
The EduLearn user interface was designed following these core principles:
- Simplicity: Clean, uncluttered interfaces that prioritise essential information
- Consistency: Uniform navigation, typography, and interaction patterns throughout
- Responsiveness: Fluid layouts that adapt seamlessly from mobile to desktop
- Accessibility: WCAG 2.1 Level AA compliance for inclusive access
- Feedback: Clear visual feedback for user actions and system states
Navigation Structure:
- Persistent sidebar navigation on desktop devices
- Collapsible hamburger menu on mobile devices
- Breadcrumb navigation for deep page hierarchies
- Quick action buttons for common tasks
Dashboard Design:
- Role-specific dashboards (Student, Lecturer, Admin)
- Card-based layout for course overview
- Activity feed showing recent events
- Quick access to upcoming deadlines and assignments
Course Interface:
- Module-lesson hierarchy displayed as expandable list
- Progress indicators showing completion status
- Contextual action buttons for content management
- Integrated assignment and forum access
Colour Scheme:
- Primary: Deep blue (#1E3A5F) - conveying trust and professionalism
- Secondary: Vibrant green (#28A745) - indicating success and progress
- Accent: Warm orange (#F7931E) - highlighting calls-to-action
- Background: Light grey (#F5F7FA) - reducing eye strain
- Text: Dark grey (#333333) - ensuring readability
Typography:
- Primary font: Inter (Google Fonts) - modern, highly legible
- Headings: Semi-bold weights for hierarchy
- Body: Regular weight for comfortable reading
- Code: Monospace font for technical content
The EduLearn project adopted the Agile methodology, specifically the Scrum framework, to manage the development process. Agile methodologies prioritise flexibility, collaboration, and iterative delivery, making them well-suited for projects with evolving requirements and tight timelines (Schwaber & Sutherland, 2020).
Iterative Development: Rather than attempting to deliver all functionality at once, the project was divided into two-week sprints, each delivering a working increment of the software. This approach allowed for early testing, stakeholder feedback, and course correction.
Continuous Collaboration: Daily stand-up meetings ensured team alignment and rapid problem resolution. Regular sprint reviews provided stakeholders with visibility into progress and opportunities to provide input.
Responding to Change: The sprint structure allowed for reprioritisation between sprints based on stakeholder feedback or changing circumstances. Features could be added, modified, or deferred based on project needs.
Working Software: Each sprint aimed to deliver potentially shippable functionality, ensuring that the project always had a working product that could be demonstrated or, if necessary, deployed.
| Role | Person | Responsibilities |
|---|---|---|
| Product Owner | Project Manager | Manages backlog, defines priorities, represents stakeholders |
| Scrum Master | Lead Developer | Facilitates ceremonies, removes impediments, ensures process adherence |
| Development Team | 5 Developers, 1 UI/UX Designer | Implements features, conducts testing, delivers increments |
Sprint Planning (Beginning of each sprint):
- Review and select backlog items for the sprint
- Break down items into tasks
- Estimate effort using story points
- Commit to sprint goal
Daily Stand-up (15 minutes each morning):
- What did you complete yesterday?
- What will you work on today?
- Are there any blockers?
Sprint Review (End of each sprint):
- Demonstrate completed work to stakeholders
- Gather feedback
- Discuss what was not completed and why
Sprint Retrospective (After each review):
- What went well?
- What could be improved?
- Action items for next sprint
Functional requirements were captured as user stories following the format: "As a [user type], I want [functionality] so that [benefit]."
Example user stories:
- As a student, I want to view my enrolled courses on a dashboard so that I can quickly access my learning materials.
- As a lecturer, I want to create assignments with due dates so that students know when work is expected.
- As an administrator, I want to manage user accounts so that I can maintain system security.
The three-month project was organised into six two-week sprints:
| Sprint | Dates | Focus Area |
|---|---|---|
| Sprint 1 | Jan 1 - Jan 14 | Foundation: Authentication, User Management |
| Sprint 2 | Jan 15 - Jan 28 | Core: Course Management, Content Structure |
| Sprint 3 | Jan 29 - Feb 11 | Features: Assignment Submission and Grading |
| Sprint 4 | Feb 12 - Feb 25 | Features: Discussion Forums, Notifications |
| Sprint 5 | Feb 26 - Mar 11 | Polish: UI Refinement, Performance Optimisation |
| Sprint 6 | Mar 12 - Mar 31 | Launch: Testing, Deployment, Documentation |
Sprint Goal: Establish the technical foundation and deliver a working authentication system.
User Stories:
| Story ID | User Story | Points | Assignee |
|---|---|---|---|
| US-001 | As a user, I want to register an account so that I can access the system | 5 | Dev 1 |
| US-002 | As a user, I want to verify my email so that my account is activated | 3 | Dev 1 |
| US-003 | As a user, I want to log in securely so that I can access my dashboard | 5 | Dev 2 |
| US-004 | As a user, I want to reset my password so that I can regain access if forgotten | 3 | Dev 2 |
| US-005 | As a user, I want to update my profile so that my information is current | 2 | Dev 3 |
| US-006 | As an admin, I want to manage user accounts so that I can maintain the system | 5 | Dev 3 |
Technical Tasks:
| Task | Description | Assignee |
|---|---|---|
| T-001 | Set up development environment (Docker, Laravel, React) | Dev 4 |
| T-002 | Configure CI/CD pipeline | Dev 4 |
| T-003 | Design and implement database schema (users, roles) | Dev 5 |
| T-004 | Set up email service integration | Dev 5 |
| T-005 | Design authentication UI wireframes | UI/UX Designer |
| T-006 | Implement frontend authentication components | Dev 1, Dev 2 |
Sprint 1 Outcomes:
- Functional registration and login system
- Email verification working
- Password reset implemented
- Admin user management interface completed
- Development environment standardised across team
Sprint Goal: Deliver course creation and management functionality for lecturers and course browsing/enrolment for students.
User Stories:
| Story ID | User Story | Points | Assignee |
|---|---|---|---|
| US-007 | As a lecturer, I want to create a new course so that I can deliver content to students | 5 | Dev 1 |
| US-008 | As a lecturer, I want to add modules to my course so that content is organised | 3 | Dev 1 |
| US-009 | As a lecturer, I want to add lessons with various content types so that students can learn | 8 | Dev 2 |
| US-010 | As a student, I want to browse available courses so that I can find courses to enrol in | 3 | Dev 3 |
| US-011 | As a student, I want to enrol in a course so that I can access its content | 3 | Dev 3 |
| US-012 | As a student, I want to view course content so that I can learn | 5 | Dev 4 |
| US-013 | As a lecturer, I want to manually enrol students so that I can control access | 3 | Dev 5 |
Technical Tasks:
| Task | Description | Assignee |
|---|---|---|
| T-007 | Design course database schema | Dev 2 |
| T-008 | Implement file upload functionality | Dev 4 |
| T-009 | Design course and module UI | UI/UX Designer |
| T-010 | Implement course listing and search | Dev 3 |
| T-011 | Create progress tracking system | Dev 5 |
Sprint 2 Outcomes:
- Lecturers can create and manage courses
- Module and lesson structure implemented
- File upload for course content working
- Students can browse, enrol, and view courses
- Manual enrolment by lecturers functional
Each developer was equipped with:
- Laptop with minimum 8GB RAM, SSD storage
- Secondary monitor for increased productivity
- Stable internet connection
| Category | Tool | Purpose |
|---|---|---|
| IDE | Visual Studio Code | Primary code editor with Laravel and React extensions |
| API Testing | Postman | API endpoint testing and documentation |
| Database Client | TablePlus / MySQL Workbench | Database management and querying |
| Design | Figma | UI/UX design and prototyping |
| Communication | Slack | Team messaging and file sharing |
| Video Conferencing | Google Meet | Remote meetings and sprint ceremonies |
| Project Management | Jira | Backlog management, sprint tracking |
| Documentation | Confluence | Technical documentation |
The development environment was containerised using Docker to ensure consistency across team members:
Docker Services:
- PHP-FPM container (PHP 8.1)
- Nginx container (web server)
- MySQL container (database)
- Redis container (caching)
- Node.js container (frontend build)
Environment Configuration:
.envfiles for environment-specific configuration- Separate configurations for development, testing, and production
- Secrets managed securely, not committed to version control
The project adopted the Gitflow workflow model, which provides a structured approach to managing code changes:
Branch Structure:
| Branch | Purpose |
|---|---|
main |
Production-ready code; deploys to production server |
develop |
Integration branch for features; deploys to staging |
feature/* |
Individual feature development branches |
release/* |
Release preparation branches |
hotfix/* |
Emergency production fixes |
Feature Development Process:
- Developer creates feature branch from
develop:feature/US-007-create-course - Developer implements feature with regular commits
- Developer opens Pull Request (PR) to
develop - Code review by at least one other developer
- Automated tests run on PR
- Upon approval, PR is merged to
develop - Feature branch is deleted
Commit Conventions:
Commits follow the conventional commits specification:
feat: add course creation endpointfix: resolve login redirect issuedocs: update API documentationrefactor: simplify user validation logictest: add unit tests for assignment submission
Code Review Guidelines:
All code changes require peer review before merging. Reviewers check for:
- Correctness and completeness of implementation
- Code quality and adherence to standards
- Test coverage
- Security considerations
- Documentation updates
A comprehensive testing strategy was implemented to ensure the quality and reliability of the EduLearn system.
Unit tests validate individual components in isolation, ensuring that functions and methods behave correctly.
Backend (PHPUnit):
- Model tests: Validating Eloquent model relationships and methods
- Service tests: Testing business logic in service classes
- Controller tests: Verifying controller responses and validation
Frontend (Jest):
- Component tests: Ensuring React components render correctly
- Hook tests: Validating custom React hooks
- Utility tests: Testing helper functions
Coverage Target: Minimum 70% code coverage for critical modules
Integration tests verify that different components work correctly together.
API Integration Tests:
- Testing complete API request-response cycles
- Validating authentication and authorisation
- Testing database interactions through the API
Frontend-Backend Integration:
- Testing complete user flows through the API
- Validating data format consistency
E2E tests simulate real user interactions to validate complete user journeys.
Test Scenarios:
- User registration and login flow
- Course creation and content upload
- Student enrolment and content access
- Assignment submission and grading
- Forum posting and replies
UAT involved actual users (representative students and lecturers) testing the system to validate that it meets their needs.
UAT Process:
- Prepared test scenarios based on user stories
- Recruited volunteer testers from target user groups
- Conducted supervised testing sessions
- Collected feedback through structured questionnaires
- Prioritised and addressed feedback items
Security testing identified and addressed potential vulnerabilities.
Security Tests Performed:
- SQL injection testing
- Cross-Site Scripting (XSS) testing
- Cross-Site Request Forgery (CSRF) testing
- Authentication bypass attempts
- Authorisation boundary testing
- File upload security testing
Performance tests ensured the system meets non-functional requirements.
Tests Conducted:
- Load testing: 500 concurrent users
- Stress testing: Identifying breaking points
- Response time measurement: Validating sub-3-second page loads
- Database query optimisation
| Testing Type | Tool | Description |
|---|---|---|
| Unit (Backend) | PHPUnit | PHP testing framework integrated with Laravel |
| Unit (Frontend) | Jest | JavaScript testing framework for React |
| API Testing | Postman, PHPUnit | API endpoint testing and automation |
| E2E Testing | Cypress | Browser-based end-to-end testing |
| Load Testing | Apache JMeter | Performance and load testing |
| Security | OWASP ZAP | Security vulnerability scanning |
| Code Analysis | PHP_CodeSniffer, ESLint | Static code analysis |
The project implemented CI/CD using GitHub Actions to automate testing and deployment.
CI Pipeline (On every push/PR):
- Checkout code
- Set up PHP and Node.js environments
- Install dependencies (Composer, npm)
- Run linting checks
- Execute unit tests
- Execute integration tests
- Build frontend assets
- Report results
CD Pipeline (On merge to main):
- Execute CI pipeline
- Build production assets
- Create deployment package
- Deploy to production server
- Run database migrations
- Clear and warm caches
- Notify team of deployment
Pre-Deployment:
- Complete all testing
- Obtain deployment approval
- Backup current production database
- Prepare rollback plan
Deployment Steps:
- Enable maintenance mode on production
- Pull latest code from repository
- Install/update dependencies
- Run database migrations
- Clear application caches
- Compile frontend assets
- Restart queue workers
- Disable maintenance mode
- Verify deployment success
Post-Deployment:
- Monitor error logs
- Verify critical functionality
- Performance monitoring
- User feedback collection
Cloud Provider: DigitalOcean (selected for cost-effectiveness and African availability)
Server Configuration:
| Component | Specification |
|---|---|
| Application Server | 2 vCPUs, 4GB RAM, 80GB SSD |
| Database Server | 2 vCPUs, 4GB RAM, 50GB SSD |
| Operating System | Ubuntu 22.04 LTS |
| Web Server | Nginx 1.22 |
| PHP Version | PHP 8.1-FPM |
| Database | MySQL 8.0 |
| Cache | Redis 6.0 |
Domain and SSL:
- Domain registered and configured
- SSL certificate provisioned via Let's Encrypt
- Automatic certificate renewal configured
Backup Strategy:
- Daily automated database backups
- 30-day backup retention
- Weekly full server snapshots
- Backups stored in separate geographic region
Monitoring:
- Server uptime monitoring
- Application error tracking (Sentry)
- Performance monitoring
- Automated alerting for critical issues
The Work Breakdown Structure decomposes the project into manageable work packages, facilitating planning, tracking, and accountability.
1.0 EduLearn LMS Project
-
1.1 Project Management
- 1.1.1 Project Planning
- 1.1.2 Stakeholder Management
- 1.1.3 Progress Monitoring
- 1.1.4 Risk Management
- 1.1.5 Project Closure
-
1.2 Requirements and Design
- 1.2.1 Requirements Gathering
- 1.2.2 Requirements Documentation
- 1.2.3 System Architecture Design
- 1.2.4 Database Design
- 1.2.5 UI/UX Design
-
1.3 Development
- 1.3.1 Backend Development
- 1.3.1.1 Authentication Module
- 1.3.1.2 Course Management Module
- 1.3.1.3 Assignment Module
- 1.3.1.4 Forum Module
- 1.3.1.5 Notification Module
- 1.3.2 Frontend Development
- 1.3.2.1 Authentication UI
- 1.3.2.2 Dashboard UI
- 1.3.2.3 Course UI
- 1.3.2.4 Assignment UI
- 1.3.2.5 Forum UI
- 1.3.1 Backend Development
-
1.4 Testing
- 1.4.1 Unit Testing
- 1.4.2 Integration Testing
- 1.4.3 User Acceptance Testing
- 1.4.4 Performance Testing
-
1.5 Deployment
- 1.5.1 Server Configuration
- 1.5.2 Application Deployment
- 1.5.3 Go-Live Support
-
1.6 Documentation
- 1.6.1 Technical Documentation
- 1.6.2 User Manuals
- 1.6.3 Project Report
The project schedule is represented as a Gantt Chart, which provides a visual timeline of project activities showing their start dates, durations, and dependencies.
Project Timeline: January 1 - March 31 (13 weeks)
| Week | Dates | Major Activities |
|---|---|---|
| Week 1 | Jan 1-7 | Project kickoff, Requirements gathering, Environment setup |
| Week 2 | Jan 8-14 | Sprint 1: Authentication development, Database design |
| Week 3 | Jan 15-21 | Sprint 2: Course management backend development |
| Week 4 | Jan 22-28 | Sprint 2: Course management frontend, Content upload |
| Week 5 | Jan 29-Feb 4 | Sprint 3: Assignment submission backend |
| Week 6 | Feb 5-11 | Sprint 3: Assignment grading, Gradebook |
| Week 7 | Feb 12-18 | Sprint 4: Discussion forums development |
| Week 8 | Feb 19-25 | Sprint 4: Notification system development |
| Week 9 | Feb 26-Mar 4 | Sprint 5: UI polish, Performance optimisation |
| Week 10 | Mar 5-11 | Sprint 5: Responsive design refinement, Bug fixes |
| Week 11 | Mar 12-18 | Sprint 6: Testing, Server setup |
| Week 12 | Mar 19-25 | Sprint 6: Deployment, UAT |
| Week 13 | Mar 26-31 | Documentation, Project handover, Closure |
Critical Path:
The critical path represents the longest sequence of dependent activities that determines the minimum project duration:
Requirements → Database Design → Backend Authentication → Course Management → Assignment System → Testing → Deployment
Any delay in critical path activities directly impacts the project completion date.
Dependencies:
| Activity | Depends On |
|---|---|
| Backend Development | Database Design |
| Frontend Development | UI/UX Wireframes |
| Integration Testing | Unit Testing Complete |
| UAT | Integration Testing Complete |
| Deployment | All Testing Complete |
Milestones:
| Milestone | Target Date | Deliverable |
|---|---|---|
| M1: Foundation Complete | January 14 | Working authentication system |
| M2: Core Features Complete | January 28 | Course management functional |
| M3: Assignment System Complete | February 11 | Assignment workflow complete |
| M4: All Features Complete | February 25 | Forums and notifications ready |
| M5: Testing Complete | March 18 | All tests passed |
| M6: Go-Live | March 25 | Production deployment |
| M7: Project Closure | March 31 | Documentation complete |
| ID | Risk | Probability | Impact | Risk Score | Owner |
|---|---|---|---|---|---|
| R-01 | API integration delays | High | Medium | 12 | Lead Developer |
| R-02 | Scope creep | High | High | 16 | Project Manager |
| R-03 | Developer illness | Medium | High | 12 | Project Manager |
| R-04 | Budget reduction | Medium | High | 12 | Project Manager |
| R-05 | Technical complexity | Medium | Medium | 9 | Lead Developer |
R-01: API Integration Delays
Response Strategy: Mitigation
- Start API integration early in the project
- Use abstraction layers for easy provider switching
- Identify backup service providers
- Build in buffer time for integration work
R-02: Scope Creep (Video Conferencing Request)
Response Strategy: Accept (defer)
When stakeholders requested video conferencing functionality during Sprint 3, the following process was followed:
- Acknowledged Request: The value of video conferencing was recognised
- Impact Analysis: Estimated 4-6 weeks additional development, additional cost for real-time infrastructure
- Decision: Feature deferred to Phase 2
- Communication: Stakeholders informed with explanation of trade-offs
- Documentation: Feature added to future enhancement backlog with architecture notes
Formal Response to Stakeholder: "We appreciate this suggestion and agree that video conferencing would add significant value to EduLearn. After careful analysis, implementing this feature would require additional development time (4-6 weeks) and infrastructure investment that would extend our timeline beyond March 31. We recommend documenting this as a priority Phase 2 feature and designing the current architecture to accommodate future integration. In the interim, we can provide integration with existing tools like Zoom or Google Meet through embedded links."
R-03: Developer Illness/Unavailability
Response Strategy: Mitigation + Contingency
Preventive measures:
- Cross-training team members
- Paired programming for critical components
- Comprehensive documentation requirements
- Code review ensuring knowledge sharing
Contingency plan (if developer becomes unavailable):
- Immediately assess impact on current sprint
- Identify critical tasks assigned to unavailable developer
- Redistribute tasks based on skills and capacity
- Adjust sprint scope if necessary
- Communicate revised expectations to stakeholders
- For extended absence (>1 week), evaluate engaging temporary contractor
Resource Reallocation Example:
If Developer 3 becomes unavailable during Sprint 3:
| Task | Original Assignee | New Assignee | Adjustment |
|---|---|---|---|
| Student dashboard | Developer 3 | Developer 1 | Extend by 2 days |
| Enrolment flow | Developer 3 | Developer 4 | Reduce scope |
| Bug fixes | Developer 3 | Developer 5 | Prioritise critical only |
Sprint scope reduced by removing lower-priority items; stakeholders informed of impact.
R-04: Budget Cut
Response Strategy: Contingency plan prepared
See Section 7.5 for detailed handling of 20% budget reduction scenario.
Risks were reviewed weekly during team meetings with updates to probability, impact, and mitigation status.
| Role | Name | Allocation | Primary Responsibilities |
|---|---|---|---|
| Project Manager | PM | 100% | Planning, coordination, stakeholder management |
| Lead Developer | Dev 1 | 100% | Architecture, code review, backend development |
| Backend Developer | Dev 2 | 100% | Backend development, API design |
| Backend Developer | Dev 3 | 100% | Backend development, database design |
| Frontend Developer | Dev 4 | 100% | Frontend development, UI implementation |
| Frontend Developer | Dev 5 | 100% | Frontend development, testing |
| UI/UX Designer | Designer | 100% | User interface design, user research |
Standard working hours: 9:00 AM - 5:00 PM, Monday - Friday (8 hours/day) Total available hours per sprint (2 weeks): 80 hours per team member
| Sprint | Total Capacity (hours) | Allocated (hours) | Buffer (hours) |
|---|---|---|---|
| Sprint 1 | 560 | 504 | 56 (10%) |
| Sprint 2 | 560 | 504 | 56 (10%) |
| Sprint 3 | 560 | 504 | 56 (10%) |
| Sprint 4 | 560 | 504 | 56 (10%) |
| Sprint 5 | 560 | 504 | 56 (10%) |
| Sprint 6 | 560 | 480 | 80 (14%) |
Note: Sprint 6 has increased buffer to accommodate deployment uncertainties.
Total Budget: Five Million Naira
| Category | Allocation | Percentage |
|---|---|---|
| Personnel | 3,500,000 | 70% |
| Infrastructure and Hosting | 600,000 | 12% |
| Software and Tools | 400,000 | 8% |
| Contingency | 500,000 | 10% |
| Total | 5,000,000 | 100% |
Scenario: During Week 4 of the project, the university finance department informs the project team that due to budget constraints, the project budget will be reduced by 20% (1,000,000 Naira), leaving a remaining budget of 4,000,000 Naira.
Impact Analysis:
| Category | Original | Revised | Reduction |
|---|---|---|---|
| Personnel | 3,500,000 | 2,800,000 | 700,000 |
| Infrastructure | 600,000 | 500,000 | 100,000 |
| Software | 400,000 | 350,000 | 50,000 |
| Contingency | 500,000 | 350,000 | 150,000 |
| Total | 5,000,000 | 4,000,000 | 1,000,000 |
Response Strategy:
-
Scope Reduction:
- Discussion forum moderation features reduced (Priority: Low → Deferred)
- Advanced analytics deferred to Phase 2
- Email notification preferences simplified
-
Resource Adjustment:
- UI/UX Designer reduced to 50% allocation after Sprint 3
- One developer assigned to 80% allocation for final sprints
-
Infrastructure Optimisation:
- Selected smaller initial server configuration with scaling capability
- Deferred CDN implementation to Phase 2
-
Timeline Maintained:
- Core features and timeline preserved
- Reduced polish and optimisation in Sprint 5
To: Vice Chancellor, [University Name]
Cc: Director of ICT, Bursar
From: [Project Manager Name], EduLearn Project Manager
Date: January 22, 2026
Subject: EduLearn LMS Project - Response to Budget Revision
Dear Vice Chancellor,
RE: EDULEARN LMS PROJECT - BUDGET ADJUSTMENT RESPONSE
Thank you for the communication regarding the revised budget allocation for the EduLearn Learning Management System project. We understand that institutional financial constraints necessitate careful resource management, and we are committed to delivering maximum value within the adjusted parameters.
Acknowledgement of Budget Revision
We acknowledge the budget reduction from Five Million Naira to Four Million Naira, representing a 20% decrease. We have conducted a thorough impact analysis and developed a revised project plan to accommodate this change while preserving the core objectives of the project.
Revised Project Scope
To operate within the revised budget while maintaining our commitment to delivering a functional, high-quality Learning Management System by March 31, we propose the following adjustments:
Core Features (Preserved):
- User authentication and management (Students, Lecturers, Administrators)
- Course creation, management, and enrolment
- Assignment submission and grading with feedback
- Basic discussion forums for collaborative learning
- Essential notification system (in-app and email for critical events)
Deferred Features (Phase 2):
- Advanced forum moderation tools
- Detailed analytics dashboards
- Customisable notification preferences
- Performance optimisation enhancements
Resource and Infrastructure Adjustments:
- Optimised team allocation in later project phases
- Right-sized initial infrastructure with scaling capability
- Streamlined UI polish scope
Timeline Commitment
We remain committed to the March 31 delivery date. The adjusted scope has been carefully designed to be achievable within this timeline and the revised budget.
Impact on Deliverables
The core user experience and essential functionality will be delivered as originally planned. Users will be able to access courses, submit assignments, receive grades, and participate in discussions. The deferred features, while valuable, are enhancements that can be implemented in a subsequent phase when additional funding becomes available.
Recommendation
We recommend proceeding with the revised scope as outlined above. Additionally, we suggest scheduling a Phase 2 planning session in April to prioritise the deferred features for future implementation.
We request your formal approval of this revised scope to proceed with the adjusted plan. Please do not hesitate to contact me should you require any clarification or wish to discuss alternative approaches.
We remain committed to delivering a system that will significantly enhance the learning experience for students and lecturers at [University Name].
Yours faithfully,
[Project Manager Name]
Project Manager, EduLearn LMS Project
Email: [email]
Phone: [phone number]
Attachments:
- Revised Budget Breakdown
- Adjusted Feature Matrix
- Updated Project Schedule
The EduLearn Learning Management System project has successfully achieved its primary objectives within the specified constraints of time, budget, and resources. The following summarises the key accomplishments:
Functional System Delivery: A fully functional Learning Management System was developed and deployed, incorporating all core features:
- Secure user authentication with role-based access control
- Comprehensive course management with modular content organisation
- Assignment submission and grading workflow with feedback mechanism
- Discussion forums enabling collaborative learning
- Real-time notification system for user engagement
Quality Implementation:
- Clean, maintainable codebase following industry best practices
- Comprehensive test coverage ensuring reliability
- Responsive design functioning across desktop and mobile devices
- Security measures protecting user data and system integrity
Technical Infrastructure:
- Scalable cloud-based hosting infrastructure
- Automated deployment pipeline ensuring consistent releases
- Monitoring and alerting systems for proactive issue detection
Schedule Performance: The project was completed within the three-month timeline, meeting the March 31 deadline. All major milestones were achieved on or before their target dates.
Budget Performance: The project was delivered within the revised budget of Four Million Naira, demonstrating effective resource management and prioritisation when faced with budget constraints.
Scope Management: Core project scope was preserved despite budget reduction. Scope creep was effectively managed through formal change control processes, with enhancement requests documented for future phases.
Team Collaboration: The Agile methodology facilitated effective team collaboration, with regular communication ensuring alignment and rapid problem resolution. Knowledge sharing through pair programming and code reviews built team capability.
For Students: Students now have access to a modern, user-friendly platform for accessing learning materials, submitting assignments, and engaging with lecturers and peers.
For Lecturers: Lecturers have tools to efficiently manage courses, grade assignments, and communicate with students, reducing administrative burden.
For the Institution: The university now possesses a custom-built LMS solution tailored to its needs, positioning it as a technology-forward institution.
While the project achieved its core objectives, several limitations should be acknowledged:
Offline Access: The current implementation requires internet connectivity for all operations. Users in areas with unreliable connectivity may experience difficulties accessing the platform.
Mobile Native Applications: The system is accessible via mobile browsers but does not include dedicated iOS or Android applications. Native apps would provide improved user experience and push notification capabilities.
Integration Limitations: The initial release does not include integration with existing university systems such as student information systems or examination management platforms.
Scalability Testing: While the architecture supports scaling, testing was limited to 500 concurrent users. Performance at higher loads remains unvalidated.
Video Conferencing: Live video conferencing was excluded from scope due to budget and timeline constraints. Users must rely on external tools for synchronous online sessions.
Advanced Assessment Types: The current assignment system supports file submission. Advanced assessment types such as quizzes, timed tests, and automated grading are not yet implemented.
Learning Path Customisation: The platform does not currently support personalised learning paths or adaptive learning based on student performance.
User Training: Limited time was allocated for end-user training. Comprehensive training programmes would enhance user adoption and effective utilisation of platform features.
Documentation: While functional documentation was provided, extensive administrator and developer documentation could be improved.
Based on project experience, stakeholder feedback, and analysis of industry trends, the following enhancements are recommended for future development phases:
| Enhancement | Description | Estimated Effort |
|---|---|---|
| Video Conferencing Integration | Embed third-party video tools (Zoom, Google Meet) | 4 weeks |
| Advanced Analytics | Detailed engagement and performance dashboards | 3 weeks |
| Mobile Applications | Native iOS and Android apps | 8 weeks |
| Quiz Module | Multiple choice, true/false, short answer assessments | 4 weeks |
| Notification Preferences | User-configurable notification settings | 2 weeks |
| Enhancement | Description |
|---|---|
| Student Information System Integration | Synchronise student data with university SIS |
| SCORM/xAPI Support | Import and track standardised e-learning content |
| Calendar Integration | Sync deadlines with Google Calendar, Outlook |
| Accessibility Improvements | WCAG 2.1 AAA compliance |
| Multi-language Support | Hausa, Yoruba, Igbo language options |
- AI-Powered Features: Automated grading assistance, plagiarism detection, personalised learning recommendations
- Virtual Reality Integration: Immersive learning experiences for practical subjects
- Blockchain Credentials: Verifiable digital certificates and transcripts
- Advanced Proctoring: Secure online examination with identity verification
-
Establish Dedicated Support Team: Assign staff for ongoing maintenance, user support, and incremental improvements
-
Conduct Regular User Research: Gather feedback from students and lecturers to guide feature prioritisation
-
Maintain Technology Currency: Regularly update dependencies and frameworks to ensure security and performance
-
Expand Training Programmes: Develop comprehensive training materials and conduct regular workshops
-
Plan for Scale: Monitor usage growth and proactively scale infrastructure before capacity limits are reached
-
Security Audits: Conduct annual third-party security assessments to identify and address vulnerabilities
Alexander, I. F., and Beus-Dukic, L. (2009). Discovering requirements: How to specify products and services. Wiley.
Aldiab, A., Chowdhury, H., Kootsookos, A., Alam, F., and Allhibi, H. (2019). Utilization of Learning Management Systems (LMSs) in higher education system: A case review for Saudi Arabia. Energy Procedia, 160, 731-737.
Bandura, A. (1977). Social learning theory. Prentice Hall.
ISO/IEC 25010. (2011). Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models. International Organization for Standardization.
Jonassen, D. H. (1999). Designing constructivist learning environments. In C. M. Reigeluth (Ed.), Instructional-design theories and models: A new paradigm of instructional theory (Vol. II, pp. 215-239). Lawrence Erlbaum Associates.
Moodle. (2023). Moodle Statistics. Retrieved from https://stats.moodle.org/
Mtebe, J. S. (2015). Learning Management System success: Increasing Learning Management System usage in higher education in sub-Saharan Africa. International Journal of Education and Development using Information and Communication Technology, 11(2), 51-64.
Pappas, C. (2019). The history and evolution of Learning Management Systems. eLearning Industry. Retrieved from https://elearningindustry.com/
PMI (Project Management Institute). (2017). A guide to the Project Management Body of Knowledge (PMBOK Guide) (6th ed.). Project Management Institute.
Schwaber, K., and Sutherland, J. (2020). The Scrum Guide: The definitive guide to Scrum: The rules of the game. Scrum.org.
Sommerville, I. (2016). Software engineering (10th ed.). Pearson Education.
Turnbull, D., Chugh, R., and Luck, J. (2019). Learning Management Systems: An overview. In A. Tatnall (Ed.), Encyclopedia of Education and Information Technologies. Springer.
Zimmerman, B. J. (2002). Becoming a self-regulated learner: An overview. Theory into Practice, 41(2), 64-70.
END OF REPORT
Document prepared by [Student Name]
Date: March 2026
Word Count: Approximately 12,000 words