![codecov](https://camo.githubusercontent.com/d0596094d8bb32b5253c220c75d497b2d76ae5a1b07d549c33bc171b731bd954/68747470733a2f2f636f6465636f762e696f2f67682f6d6572696b626573742f65636f6d6d657263652d737072696e672d72656163746a732f6272616e63682f7472617669732d63692d746573742f67726170682f62616467652e7376673f746f6b656e3d7345664f667042484458)
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
- 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
- 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.
- 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
https://perfume-websore-api.herokuapp.com/swagger-ui.html
Or show local:
http://localhost:8080/swagger-ui.html
Menu page |
Product page |
![Menu page](https://camo.githubusercontent.com/ecbf60bb2dc3fa4ead8c6104dd1c67c66a6f0a650d140517e673780789a04dfc/68747470733a2f2f692e6962622e636f2f565434527a596a2f316d656e752e6a7067) |
![Product page](https://camo.githubusercontent.com/aa6260f9988f173df9e3f02dad61f96706920d6bf50ba242f16e17e60949f811/68747470733a2f2f692e6962622e636f2f48746e4b7030572f322d50726f647563742d706167652e6a7067) |
Cart |
Ordering |
![Email template](https://camo.githubusercontent.com/c55804eee2013c393eb39934dfccfc42c0c43cfaf264ff03a548d4e339e19264/68747470733a2f2f692e6962622e636f2f385938626653472f332d436172742e6a7067) |
![List of users](https://camo.githubusercontent.com/fb3b63b7b2327866984cac3b689c351b1c550864f20f7447d0d68da80fc7fbd0/68747470733a2f2f692e6962622e636f2f744c6d593879322f342d4f72646572696e672e6a7067) |
Email template |
List of orders |
![Email template](https://camo.githubusercontent.com/a1feb4021f1601053a6b5eedfbf5fca352fcb32a31fb20ec8477d6e4be03ae1d/68747470733a2f2f692e6962622e636f2f626d4b544c504a2f656d61696c2d74656d706c6174652e6a7067) |
![List of users](https://camo.githubusercontent.com/6a990dd193dd77dd8e9e7127d771a164b08eb9cdad995eae9e6b567040542bbc/68747470733a2f2f692e6962622e636f2f704c54794632352f362d4c6973742d6f662d6f72646572732e6a7067) |
User profile page |
Add perfume page |
![User profile page](https://camo.githubusercontent.com/b86c0cfd5f9852cd630c34fb6f2e24ed97230afa2cfc1694b1f92ef39dc3eca8/68747470733a2f2f692e6962622e636f2f717831437363382f372d557365722d70726f66696c652d706167652e6a7067) |
![Add perfume page](https://camo.githubusercontent.com/efbdf894fcd76e0895531fbae10cc1e484a089e40626c8628c725378c3c3cba4/68747470733a2f2f692e6962622e636f2f5862734a5051482f382d4164642d70657266756d652d706167652e6a7067) |
Edit perfume list |
Edit perfume page |
![Edit perfume list](https://camo.githubusercontent.com/0f5f66c8505f10ec2afd948a5e062de02b46c4c46a39f6ed0b2bec63eb1e51d1/68747470733a2f2f692e6962622e636f2f484662397766522f392d456469742d70657266756d652d6c6973742e6a7067) |
![Edit perfume page](https://camo.githubusercontent.com/2f7ab7f346f9ab1d904dfde7fd65ef5198241620aa6c6dd712f91bc9a331c8c1/68747470733a2f2f692e6962622e636f2f6a48385238784c2f31302d456469742d70657266756d652d706167652e6a7067) |