https://github.com/aliyara290/golearning
GoLearning is an online learning platform designed to offer an interactive and personalized educational experience for both students and teachers. The platform includes a wide range of features tailored for different user roles to ensure a seamless learning process.
https://github.com/aliyara290/golearning
course learning online-learning oop php
Last synced: about 2 months ago
JSON representation
GoLearning is an online learning platform designed to offer an interactive and personalized educational experience for both students and teachers. The platform includes a wide range of features tailored for different user roles to ensure a seamless learning process.
- Host: GitHub
- URL: https://github.com/aliyara290/golearning
- Owner: aliyara290
- Created: 2025-01-13T08:50:29.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-01-21T22:19:33.000Z (over 1 year ago)
- Last Synced: 2025-02-28T07:15:14.907Z (over 1 year ago)
- Topics: course, learning, online-learning, oop, php
- Language: PHP
- Homepage:
- Size: 901 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# GoLearning - Online Course Platform
GoLearning is an online learning platform designed to offer an interactive and personalized educational experience for both students and teachers. The platform includes a wide range of features tailored for different user roles to ensure a seamless learning process.
## Main Features
### Front Office:
#### Visitor:
- Access to the course catalog with pagination.
- Search for courses using keywords.
- Create an account and choose a role (Student or Teacher).
#### Student:
- Browse the course catalog.
- Search and view detailed course information (description, content, instructor, etc.).
- Enroll in courses after authentication.
- Access the "My Courses" section to view enrolled courses.
#### Teacher:
- Add new courses with details such as:
- Title, description, content (video or document), tags, and category.
- Manage courses:
- Modify, delete, and view student enrollments.
- View course statistics:
- Number of students enrolled, total courses, etc.
### Back Office:
#### Administrator:
- Validate teacher accounts.
- Manage users:
- Activate, suspend, or delete user accounts.
- Manage content:
- Courses, categories, and tags.
- Bulk insertion of tags for efficiency.
- View global statistics:
- Total number of courses, category distribution, top 3 teachers, most popular courses, etc.
### Cross-functional Features:
- Courses can have multiple tags (many-to-many relationship).
- Polymorphism applied for course creation and display.
- Authentication and authorization system for secure routes and data.
- Role-based access control: each user can only access features corresponding to their role.
## Technical Requirements:
- Object-Oriented Programming (OOP) principles:
- Encapsulation, inheritance, polymorphism.
- Relational database with relationship management (one-to-many, many-to-many).
- PHP sessions for managing logged-in users.
- Input validation to ensure security and integrity.
### Bonus Features:
- Advanced course search with filters (category, tags, author).
- Detailed statistics:
- Engagement rate, most popular categories, etc.
- Notification system for:
- Teacher account validation and course enrollment confirmation.
- Comment and rating system for courses.
- PDF certificate generation for students upon course completion.
## Setup Instructions
### Clone the Repository:
```bash
git clone https://github.com/aliyara290/GoLearning.git