Welcome to the E-Learning Platform, an online learning platform where instructors can upload courses, and students can enroll and learn. This platform is designed to provide a comprehensive learning experience for both instructors and students.
- Instructors and students can create accounts.
- Secure user authentication to protect user data.
- Instructors can easily create, upload, and manage courses.
- Create, read, update, and delete (CRUD) functionality for course management.
- Students can enroll in courses.
- Track your learning progress as you complete course materials.
- Efficiently manage your learning path.
- Symfony 6.3 Framework
- Twig for templates
- Symfony Maker Bundle for code generation
- Symfony Forms for user-friendly forms
- Composer for dependency management
- MySQL database for data storage
- Docker Compose for containerization
- Doctrine ORM for database migrations
- Configuration files (config/*.yaml)
- EasyAdmin Bundle for admin CRUD operations
- Codeception acceptance tests for login, registration, adding courses, and deleting courses
To run this project successfully, follow these installation instructions:
- Install PHP 8.1 or higher and the required PHP extensions.
- Install Composer: https://getcomposer.org/download/
- Download and install Symfony on your system if you haven't already: https://symfony.com/download
- Clone this repository:
git clone https://github.com/lexiscode/e-learning-app.git - Make sure your XAMPP Apache server is up and running.
- Create a
.env.localfile and copy the contents of.envinto it. - Run
composer updateto install and update all necessary packages for the web application. - Create the database by running:
symfony console doctrine:database:create - Run the migration to update your database schema:
symfony console doctrine:migrations:migrate - Install npm for assets compilation:
npm install - Compile assets with:
npm run dev - Clear cache files:
symfony console cache:clear - Start the local web server:
symfony server:start -d - Open the project in your web browser by running:
symfony open:local
These below are for Docker installation instructions:
## Docker Test Installation SetUp
If you prefer to use Docker for running the project, follow these steps:
1. In your `.env.local` file, make the following changes:
- Comment out the XAMPP database URL.
- Uncomment the Docker database URL configuration.
2. Run the following command to update Composer dependencies (if you've not done it before):
```bash
composer update-
Install npm for assets compilation (if you've not done it before):
npm install
-
Compile assets using webpack (if you've not done it before):
npm run dev
-
Ensure you have Docker Desktop installed and are logged in.
-
Build the Docker image and start the containers using the following command:
docker-compose up --build
-
Once the containers are built and running, open another terminal and navigate to the project directory.
-
Get a bash shell inside the MariaDB container:
docker exec -it <mariadb-container-id> bash
-
Inside the bash shell, log in to the MariaDB server:
mariadb -u root -p
-
Enter "root" as the password when prompted to log in.
-
Exit the bash shell and get a bash shell inside the FPM (PHP) container:
docker exec -it <fpm-container-id> bash
-
(Optional) Confirm the existence of your database, either by logging in to phpMyAdmin or running this command (it should give you an error message saying "database exists"):
php /application/bin/console doctrine:database:create
-
Run the migration to apply the database schema:
php /application/bin/console doctrine:migrations:migrate
-
Access the project using the following URL:
Once the installation is complete and the local web server is running, open your web browser and access the platform at the provided URL. You can now register, log in, and start using the E-Learning Platform.
- Instructors can create, manage, and publish courses.
- Students can enroll in courses and track their progress.
- Explore the platform, enroll in courses, and enhance your knowledge.
Contributions to this project are welcome. Please follow the standard best practices for software development. To contribute, fork the repository, make your changes, and submit a pull request.
This project is licensed under the MIT License. You can freely use, modify, and distribute it.