![codecov](https://camo.githubusercontent.com/b879dbfd84bff9ee2bd30b48a945cab26bbb2632d61d64bdcb96d3914dcdc9e0/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/dc2e1727cc31b8f9155db34534e4c57245bec0e22da551d877721d2f246a9c81/68747470733a2f2f692e6962622e636f2f565434527a596a2f316d656e752e6a7067) |
![Product page](https://camo.githubusercontent.com/bb4bfaca867d286055b524087f5895f2312c2f2948fd5fef750100fbeb0a318a/68747470733a2f2f692e6962622e636f2f48746e4b7030572f322d50726f647563742d706167652e6a7067) |
Cart |
Ordering |
![Email template](https://camo.githubusercontent.com/6845afc50a3482670c6e563e7ba926728bcc7d17a4e454e27ceb1002b22c4bde/68747470733a2f2f692e6962622e636f2f385938626653472f332d436172742e6a7067) |
![List of users](https://camo.githubusercontent.com/181476815dca3b0cc7e1229da4c24791f663564307c09a4adb440fefda13d936/68747470733a2f2f692e6962622e636f2f744c6d593879322f342d4f72646572696e672e6a7067) |
Email template |
List of orders |
![Email template](https://camo.githubusercontent.com/7b0bf363ad798c77acb998e02b6eabbba4c61e1114855ed188b819d2201b4f9e/68747470733a2f2f692e6962622e636f2f626d4b544c504a2f656d61696c2d74656d706c6174652e6a7067) |
![List of users](https://camo.githubusercontent.com/a77e9ce5ee06ea46b8da112e47ea9342955276ce2a695ec8962c4b90103d9fa7/68747470733a2f2f692e6962622e636f2f704c54794632352f362d4c6973742d6f662d6f72646572732e6a7067) |
User profile page |
Add perfume page |
![User profile page](https://camo.githubusercontent.com/a5c384f0faa71961305dfb0fe6494aecd02c876ee09c5fac3f1f925499fc2a71/68747470733a2f2f692e6962622e636f2f717831437363382f372d557365722d70726f66696c652d706167652e6a7067) |
![Add perfume page](https://camo.githubusercontent.com/c8dd83092193fc94654bcce063bb2f486df05056e8cef2393e0e82b8e4fe30f2/68747470733a2f2f692e6962622e636f2f5862734a5051482f382d4164642d70657266756d652d706167652e6a7067) |
Edit perfume list |
Edit perfume page |
![Edit perfume list](https://camo.githubusercontent.com/665424523ce32c8c369ffea641710692463799fed9e8c4c07128f34261766a09/68747470733a2f2f692e6962622e636f2f484662397766522f392d456469742d70657266756d652d6c6973742e6a7067) |
![Edit perfume page](https://camo.githubusercontent.com/7f8928230e958f0285317eaffd8a920f3ffeb8a6aa75b0afdad09dfaade5d4ad/68747470733a2f2f692e6962622e636f2f6a48385238784c2f31302d456469742d70657266756d652d706167652e6a7067) |