Open Education Uganda is a modern platform designed by Najuna Brian and Jerry Laruba Festus to deliver accessible, high-quality educational resources to learners across Uganda. Built with React and modern web technologies, it offers a scalable foundation for digital learning initiatives.
- Project Overview
- Features
- Technology Stack
- Project Structure
- Getting Started
- Available Scripts
- Deployment
- Contributing
- Developer Documentation
- License
Open Education Uganda is a frontend web application designed to provide students with easy access to academic resources and study materials. It features a hierarchical navigation system that mirrors the structure of an educational institution:
Colleges > Departments > Programs > Years > Semesters > Courses > Materials
The primary goal is to create a user-friendly, intuitive, and scalable platform for learning.
- Responsive Design: Ensures optimal viewing across devices.
- Hierarchical Navigation: Intuitive academic structure layout.
- Search Functionality: Quickly locate courses and materials.
- User Authentication: Basic login system for access control.
- Modular Components: Reusable and maintainable code structure.
- React: A JavaScript library for building user interfaces.
- JavaScript (ES6+): Core programming language.
- CSS: Styling using both global styles and component-specific CSS.
- JSON: Used to store and manage the academic structure and content.
- No Backend (Current Version): This version is frontend-only; all content is loaded from a local JSON file.
open-education-uganda/ ├── public/ │ ├── assets/ │ │ └── logo.png │ └── index.html ├── src/ │ ├── components/ │ │ ├── Navbar.js │ │ └── ... │ ├── pages/ │ │ ├── Home.js │ │ ├── About.js │ │ ├── Contact.js │ │ └── Login.js │ ├── App.js │ ├── index.js │ └── ... ├── docs/ │ └── developer-docs.md ├── .gitignore ├── package.json ├── README.md └── ...
- Node.js (v14 or higher)
- npm (v6 or higher)
- Clone the repository:
git clone https://github.com/najuna-brian/open-education-uganda.git
cd open-education-uganda
- Install dependencies:
npm install
- Start the development server
npm start
The application will run at http://localhost:3000.
In the project directory, you can run:
-
npm start
– Runs the app in development mode. -
npm run build
– Builds the app for production. -
npm test
– Launches the test runner. -
npm run eject
– Ejects the app from Create React App configuration.
To deploy the application:
- Build the app:
npm run build
- Deploy the contents of the build/ folder to your preferred static hosting service (e.g., Netlify, GitHub Pages, Vercel).
We welcome contributions from the community! Here's how you can get started:
-
Fork the repository then clone it.
-
Create a feature branch:
git checkout -b feature/your-feature-name
-
Commit your changes:
git commit -m "Describe your feature"
-
Push to your branch:
git push origin feature/your-feature-name
-
Open a Pull Request detailing what you've done.
For in-depth developer instructions, technical decisions, data structures, and UI interaction guidelines, refer to the full Developer Documentation.
This documentation is especially useful for:
- Understanding the design principles of the platform
- Learning how components and JSON data are structured
- Extending the platform with new features
- Collaborating efficiently with the development team
This project is licensed under the MIT License.