πΊ Perfume webstore
E-commerce project developed using Spring Boot and React.js.
An actual version of frontend build deployed to AWS S3 and backend deployed to Heroku:
http://perfume-web.tk
Login: [email protected]
Password: admin
Used Technologies:
- Back-end: Spring (Boot, Data, Security), JPA / Hibernate, PostgreSQL, JUnit, Mockito
- Front-end: TypeScript, React.js, Redux Toolkit, Ant Design, Jest
- Security: JWT, OAuth2 Google, Facebook, Github
- REST API, GraphQL API
- AWS S3, Heroku
- Server Build: Maven
- Client Build: npm, yarn, webpack
Features
- Authentication with JWT and Email validation.
- Authentication with Google, Facebook or Github
- Customers can search for the product according to the specified criteria.
- Customers can add and delete products from the shopping cart.
- Customers can order the products in the shopping cart.
- Customers can change their password and view their orders.
- Admin can add or modify a product.
- Admin can change the data of any user.
- Admin can view orders of all users.
Installation
- Install maven: link
- Install Java 8: link
- Install Intellij IDEA Ultimate: link
- Install Postgresql: link
- Open pgAdmin and create a new DB (name: perfume and perfumetest) in Postgresql: link
- Add Postgresql properties to the application.properties file: link
- Add Lombok and GraphQL plugins to the Intellij IDEA (File/Settings/Plugins)
- Register new AWS account: link
- Create new S3 bucket: link
- Change access from private to public in S3 bucket
- Add public access policy to S3 bucket (!!!important!!! see:
doc,
github examle or
my example)
- Get AWS keys: link and add to the application.properties file: link
- Register in gmail
- Configure reCAPTCHA: link, guide, video guide (RUS)
- Add reCAPTCHA key to the application.properties file: link and to link
- Add gmail account and password to the application.properties file: link
- Go to link (important) and change to: βAllow less secure apps: ONβ
- Configure OAuth2: link, guide, video guide (RUS)
- Add OAuth2 properties to the application.properties file: link
- Install node.js and npm: link
- Now you can run EcommerceApplication (port 8080) and open terminal in client directory and type: npm start
- Navigate to http://localhost:3000
Swagger Documentation
https://perfume-websore-api.herokuapp.com/swagger-ui.html
Or show local:
http://localhost:8080/swagger-ui.html
Screenshots
Menu page |
Product page |
|
|
Cart |
Ordering |
|
|
Email template |
List of orders |
|
|
User profile page |
Add perfume page |
|
|
Edit perfume list |
Edit perfume page |
|
|