A full stack ecommerce application using React for the frontend, Spring Boot Java for the backend, PostgreSQL as the database, and GraphQL for queries. The application includes user login, registration, authentication, and captcha verification along with admin controls.
Table of Contents
The project focuses on creating a full stack ecommerce application that showcases a clothing store. The backend is built with Spring Boot Java, interfacing with a PostgreSQL database, and using GraphQL for queries. The frontend is developed with React, providing a dynamic and responsive user interface. The application includes full user authentication with login and registration features, as well as captcha verification to enhance security. It also features admin controls to manage items, orders and users.
- ✔️ Implement user authentication with JWT
- ✔️ Add captcha verification for user registration and login
- ✔️ Develop a dynamic frontend using React
- ✔️ Build a robust backend with Spring Boot and PostgreSQL
- ✔️ Integrate GraphQL for efficient data querying
- ✔️ Implement shopping cart and order processing functionalities
- ✔️ Develop an admin interface for managing products, users and orders
- ✔️ Test endpoints with Postman
- ✔️ Utilize Docker for containerized deployment and easy setup across different environments
- Ensure Docker is installed and running on your system
- See https://docs.docker.com/ for installation instructions
- Build the Docker image and ensure no previous cache is used:
docker-compose build --no-cache
- Compose the Docker image:
docker-compose up
-
Manual Installation:
- Client frontend:
npm install
npm start
- Server backend:
maven clean install
mvn spring-boot:run
- Client frontend:
-
Postgresql database should have credentials (change in application.properties if needed):
- Username:
postgres
- Password:
root
- Username:
-
Admin credentials:
- Admin Login:
[email protected]
- Admin Password:
admin123
- Admin Login:
-
When an admin upload a new item to the store, it may take up to 30 mins for the store to update. To avoid this, re-run the server backend.
-
If you cannot upload any item images as admin, you must change file permissions of static.asset.images to be able to read, write, execute.