Moodle but he's stronger, he's smarter.
InnoMoodle is a learning management system designed to replace the university’s current educational portal. Leveraging modern UX/UI principles and responsive design, InnoMoodle will deliver a clean, intuitive interface that streamlines course creation, management, and delivery. By focusing on the needs of both instructors and students, the platform aims to foster engagement, improve usability, and reduce administrative overhead.
- Seamless Migration: Safely migrate existing courses, user accounts, and content from the legacy system to InnoMoodle with minimal downtime.
- Enhanced User Experience
- Instructor-Centric Tools
- Improved Engagement
- Accessibility & Compliance
- Scalability & Security
- Integration & Extensibility
- Go >= 1.24.4
- Docker & Docker Compose >= 1.29
- PostgreSQL (if running locally) >= 15
-
Clone the repository (for all commands from here use bash):
git clone https://github.com/Troshkins/InnoMoodle.git cd InnoMoodle
-
Configure environment variables: copy .env.example to .env and fill in:
dotenv DB_USER=myapp_user DB_PASSWORD=secret123 DB_NAME=myapp_db DB_HOST=db DB_PORT=5432 SERVER_PORT=8080
-
Initialize the database using (if not using Docker Compose init):
psql -U myapp_user -d myapp_db -f db/init/init.sql
-
With Docker Compose:
docker-compose up --build
- The API will be available at http://localhost:8080/api/health
- The frontend is served at http://localhost:8080/
-
Locally (without Docker):
-
Start PostgreSQL and create the database and user as above.
-
In backend/, install dependencies:
cd backend go mod download
-
Run the Go server:
go run main.go
-
Serve static files by opening index.html in a browser or using a simple HTTP server:
npx serve static/
-
-
No authentication is required for the sample GET /api/hello endpoint.
-
For protected routes, use:
Username: admin@example.com Password: password123
See Quality Attribute Scenarios
The project will continue to be done, so a developed design section is needed to avoid re-work.
