An e-commerce platform for purchasing customized posters, developed collaboratively to explore and implement classic development methodologies. The project features a Symfony-powered backend, an Angular-based frontend, and a MySQL database. This project served as a hands-on learning experience in using modern frameworks to build scalable web applications.
- Features
- Technologies Used
- Methodologies and Frameworks
- Prerequisites
- Installation
- Running the Project
- Database Migrations
- Screenshots
- Contributing
- License
- User authentication and authorization
- Product catalog with search and filter functionality
- Shopping cart and checkout process
- Order management for users and administrators
- Responsive design for mobile and desktop
- Backend: Symfony
- Frontend: Angular
- Database: MySQL
- Other Tools: Composer, Node.js, npm
The development of the Nerdevana e-commerce platform was guided by classic software development methodologies, including:
- Waterfall Model: Sequential stages were followed, starting from requirements gathering, design, implementation, testing, and maintenance. This approach ensured clear goals and structured deliverables at each phase of development.
- Team Collaboration: Regular meetings and well-documented project plans allowed for seamless coordination among team members, with distinct roles and responsibilities to maximize efficiency.
These methodologies provided a solid foundation for project execution, emphasizing planning, documentation, and phased development cycles.
Symfony, a PHP framework, was chosen for the backend due to its robust set of tools and flexibility for building web applications. Key features of Symfony that were utilized in this project include:
- MVC Architecture: Enabled a clear separation of concerns, improving code maintainability and scalability.
- Doctrine ORM: Simplified database interactions and migrations, ensuring efficient handling of MySQL data.
- Bundles: Modular components allowed for streamlined development, encouraging code reuse and reducing redundancy.
- Routing and Controllers: Simplified the management of HTTP requests, providing a clean and efficient structure for API endpoints.
Symfony’s emphasis on best practices and modern PHP standards ensured the backend was both performant and secure.
- PHP >= 7.4
- Composer
- Node.js and npm
- MySQL
-
Clone the repository:
git clone https://github.com/yourusername/Nerdevana--E-Commerce-Website.git cd Nerdevana--E-Commerce-Website/Backend
-
Install PHP dependencies:
composer install
-
Create and configure the
.env
file:cp .env.example .env
Update the
.env
file with your database credentials and other necessary configurations. -
Create the database:
php bin/console doctrine:database:create
-
Run database migrations:
php bin/console doctrine:migrations:migrate
-
Load fixtures (optional):
php bin/console doctrine:fixtures:load
-
Navigate to the frontend directory:
cd ../Frontend
-
Install Node.js dependencies:
npm install
Start the Symfony server:
php -S localhost:8000 -t public
Start the Angular development server:
ng serve --open
The application will be accessible at http://localhost:4200
for the frontend and http://localhost:8000
for the backend.
To update the database schema after making changes to the entity files:
-
Generate a new migration file:
php bin/console make:migration
-
Execute the migration:
php bin/console doctrine:migrations:migrate
Here are some screenshots showcasing the application:
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix:
git checkout -b feature-name
- Commit your changes:
git commit -m "Description of changes"
- Push to your branch:
git push origin feature-name
- Open a pull request and describe your changes.
This project is licensed under the MIT License.