Back to projects
Bookstore Ecommerce

Bookstore Ecommerce

Rouissi Mounir / August 4, 2024

This is a full-stack bookstore ecommerce application built with Spring Boot and Angular. It implements security features to protect user data and manage authentication.

Features

  • Product Catalog: Display books in a grid layout.
  • Shopping Cart: Add books to the shopping cart.
  • User Authentication: Allow users to sign up and log in securely.
  • Order History: View order history.
  • Book Management: Admin interface for managing book inventory.

Technologies

  • Spring Boot: A Java-based framework for building robust backend services.
  • Angular: A TypeScript-based web application framework for building dynamic frontend applications.
  • Spring Security: Provides authentication and authorization functionalities.
  • MySQL: A relational database for storing application data.
  • Bootstrap: A CSS framework for responsive and mobile-first frontend design.

Getting Started

To get started with this project, you can clone the repository and set up the backend and frontend:

git clone https://github.com/mounirrouissi/shop-app.git cd shop-app

For the backend:

cd backend ./mvnw spring-boot:run

For the frontend:

cd frontend npm install ng serve

The backend server will start at http://localhost:8080 and the frontend development server will start at http://localhost:4200.

Security

This application implements Spring Security for authentication and authorization. It includes:

  • User registration and login
  • Role-based access control
  • JWT (JSON Web Token) for stateless authentication

Deployment

To deploy this project, you can use a cloud platform that supports Java applications for the backend (such as Heroku or AWS) and a static hosting service for the Angular frontend (such as Netlify or Firebase Hosting).

Conclusion

This bookstore ecommerce application demonstrates how to build a secure, full-stack ecommerce platform using Spring Boot and Angular. It provides a solid foundation for managing a bookstore's inventory and customer interactions, with a focus on security and user experience.