E-commerce Application

Purpose of the Project

This is a full-stack e-commerce application that was created to demonstrate my skills and experience with web development using Angular, Spring Boot, and XAMPP. This application allows users to browse products, add them to their cart, and checkout using PayPal. The application is built using Angular (TypeScript) and Spring Boot (Java) with a MySQL database using XAMPP. The application uses the Fake Store API to get random products, and integrates with PayPal to process payments.

Key Features

User Management

- User registration and login using JSON Web Tokens (JWT)

Product Management

- Browse products by category or search for specific products
- Product details page with product description, and images
- Add products to cart and view cart contents
- Apply discount codes during checkout

Checkout and Payment

- Checkout flow with order summary and shipping information
- PayPal integration to process payments securely and efficiently

Third-Party Integration

- Integration with the [Fake Store API](https://fakestoreapi.com) to get random products for the application
- Integration with [PayPal](https://developer.paypal.com/home) to process payments

Installation

- Instructions provided soon

Technology Stack

Front-end

- Angular (TypeScript)
- MDBBootstrap: a UI component library based on Bootstrap that is used to create a clean and modern look for the application.

Back-end

- Spring Boot (Java)
- Spring Security for authentication and authorization using JWT
- Spring Validation for form validation
- Lombok for reducing boilerplate code
- Spring Data JPA for database access using Hibernate
- MySQL database using XAMPP
- PayPal Javascript SDK for integrating with PayPal API

Conclusion

Overall, this project demonstrates my ability to design, implement, and maintain a full-stack web application using modern web development technologies, as well as my ability to integrate third-party software and Spring modules into a project to enhance its functionality and performance. It showcases my skills in front-end and back-end development, database design and management, and project planning and management, as well as my understanding of security in web development. The use of JWT, Lombok, and Spring Validation demonstrates my familiarity with common Java development tools and practices.