A modern, open-source E-Learning platform built with Laravel. Create courses, engage students, and manage your learning community with ease.
- Browse and enroll in courses (free or paid)
- Track learning progress with visual indicators
- Access course materials (videos, PDFs, text content)
- Take quizzes and assessments
- Chat with instructors
- View course completion status
- Create and manage courses
- Add modules with different content types (video, PDF, text)
- Track student progress and enrollments
- Create quizzes with multiple-choice questions
- Chat with enrolled students
- Manage course pricing (free or paid)
- Manage all users (students, instructors, admins)
- Oversee all courses and enrollments
- Process and track payments (cash/free)
- View platform statistics and analytics
- Manage user roles and permissions
- Built with Laravel 11 framework
- Role-based access control (Student, Instructor, Admin, Guest)
- Responsive Bootstrap 5 UI
- Secure authentication system
- File upload management for course materials
- Progress tracking system
- Real-time chat functionality
- PHP 8.2 or higher
- Composer
- MySQL/MariaDB database
- Node.js and NPM (optional, for frontend assets)
-
Clone the repository
git clone https://github.com/ferasshita/Graya.git cd Graya -
Install dependencies
composer install
-
Configure environment
cp .env.example .env php artisan key:generate
-
Update database configuration Edit
.envfile and set your database credentials:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=graya DB_USERNAME=your_username DB_PASSWORD=your_password -
Create database Create a MySQL database named
graya(or whatever you specified in .env) -
Run migrations
php artisan migrate
-
Create storage link
php artisan storage:link
-
Start the development server
php artisan serve
-
Access the application Open your browser and visit
http://localhost:8000
- The first user to register will need to be manually set as admin in the database
- Update the
rolecolumn in theuserstable toadminfor your user - You can then promote other users through the admin panel
For detailed information about the implementation, see:
- INSTALLATION.md - Complete installation guide
- IMPLEMENTATION.md - Technical implementation details
- API.md - API documentation and extension guide
- Database schema and migrations:
database/migrations/ - Sample data seeder:
database/seeders/DatabaseSeeder.php - Routes:
routes/web.php - Models:
app/Models/ - Controllers:
app/Http/Controllers/
Admin: admin@graya.com / admin123
Instructor: instructor@graya.com / instructor123
Student: student@graya.com / student123
Thank you for considering contributing to this project! Contributions are welcome and greatly appreciated. To ensure a smooth collaboration, please follow these guidelines:
- Fork the repository and create your branch from
main. - Make sure your code follows the project's coding style and conventions.
- Provide clear and concise commit messages.
- Test your changes thoroughly before submitting a pull request.
- Include relevant documentation and update the README, if necessary.
- Be respectful and considerate towards others when participating in discussions or addressing issues.
If you encounter any bugs, have questions, or have a feature request, please open an issue on the GitHub repository. When opening an issue, provide as much detail as possible, including steps to reproduce the issue or a clear description of the feature request.
To contribute code changes:
- Ensure that your changes are compatible with the project's license (see LICENSE).
- Fork the repository and create a new branch for your changes.
- Make your changes, ensuring that your code adheres to the project's coding style and conventions.
- Test your changes to ensure they function as intended.
- Commit your changes with a descriptive and concise commit message.
- Push your changes to your forked repository.
- Submit a pull request, providing a clear description of the changes made and why they are beneficial.
Please note that all contributions will be reviewed, and constructive feedback may be provided to help improve the quality and maintainability of the project.
Thank you for your contributions and support in making this project better!
This project is licensed under the MIT License.
If you have any questions, suggestions, or feedback regarding this project, I would be happy to hear from you. You can reach me through the following channels:
- Email: Email
- linkedIn: @Feras Shita
- GitHub: ferasshita
Feel free to reach out with any inquiries or discussions related to the project. I will do my best to respond in a timely manner.
Made with ❤️ by Feras