{"id":27164828,"url":"https://github.com/neelimabonangi/ecommerce-reactjs-spring","last_synced_at":"2026-04-10T02:18:32.951Z","repository":{"id":278685092,"uuid":"936440674","full_name":"neelimabonangi/ecommerce-reactjs-spring","owner":"neelimabonangi","description":"ecommerce online shop. Using Java, Spring Boot, JWT, OAuth2.0, React.js, Redux Toolkit, Ant Design, REST API, GraphQL","archived":false,"fork":false,"pushed_at":"2025-02-21T07:18:02.000Z","size":342,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-10T21:49:06.015Z","etag":null,"topics":["cart","ecommerce","ecommerce-application","graphql","java","javascript","jwt","oauth2","postgresql","reactjs","redux-toolkit","shopping","shopping-cart","spring","spring-boot","spring-security","typescript"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neelimabonangi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-21T04:59:11.000Z","updated_at":"2025-02-21T07:29:26.000Z","dependencies_parsed_at":"2025-02-21T06:19:06.732Z","dependency_job_id":"c0ac1af5-f55b-43ba-8508-a000306cdcc5","html_url":"https://github.com/neelimabonangi/ecommerce-reactjs-spring","commit_stats":null,"previous_names":["neelimabonangi/ecommerce-reactjs-spring"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/neelimabonangi/ecommerce-reactjs-spring","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neelimabonangi%2Fecommerce-reactjs-spring","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neelimabonangi%2Fecommerce-reactjs-spring/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neelimabonangi%2Fecommerce-reactjs-spring/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neelimabonangi%2Fecommerce-reactjs-spring/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neelimabonangi","download_url":"https://codeload.github.com/neelimabonangi/ecommerce-reactjs-spring/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neelimabonangi%2Fecommerce-reactjs-spring/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271236280,"owners_count":24723978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cart","ecommerce","ecommerce-application","graphql","java","javascript","jwt","oauth2","postgresql","reactjs","redux-toolkit","shopping","shopping-cart","spring","spring-boot","spring-security","typescript"],"created_at":"2025-04-09T02:40:45.643Z","updated_at":"2025-12-30T20:05:12.077Z","avatar_url":"https://github.com/neelimabonangi.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/merikbest/ecommerce-spring-reactjs.svg?branch=travis-ci-test)](https://travis-ci.com/merikbest/ecommerce-spring-reactjs)\n[![codecov](https://codecov.io/gh/merikbest/ecommerce-spring-reactjs/branch/travis-ci-test/graph/badge.svg?token=sEfOfpBHDX)](https://codecov.io/gh/merikbest/ecommerce-spring-reactjs)\n\n# :hibiscus: Perfume webstore\n\nE-commerce project developed using Spring Boot and React.js.\u003cbr\u003e\n\n#### An actual version of frontend build deployed to AWS S3 and backend deployed to Heroku:\nhttp://perfume-web.tk \u003cbr\u003e\nLogin: admin@gmail.com \u003cbr\u003e\nPassword: admin\n\n## Used Technologies:\n\n* Back-end: Spring (Boot, Data, Security), JPA / Hibernate, PostgreSQL, JUnit, Mockito\n* Front-end: TypeScript, React.js, Redux Toolkit, Ant Design, Jest\n* Security: JWT, OAuth2 Google, Facebook, Github\n* REST API, GraphQL API\n* AWS S3, Heroku\n* Server Build: Maven\n* Client Build: npm, yarn, webpack\n\n## Features\n\n* Authentication with JWT and Email validation.\n* Authentication with Google, Facebook or Github\n* Customers can search for the product according to the specified criteria.\n* Customers can add and delete products from the shopping cart.\n* Customers can order the products in the shopping cart.\n* Customers can change their password and view their orders.\n* Admin can add or modify a product.\n* Admin can change the data of any user.\n* Admin can view orders of all users.\n\n## Installation\n\n1. Install maven: [link](https://www.baeldung.com/install-maven-on-windows-linux-mac)\n2. Install Java 8: [link](https://www.oracle.com/ru/java/technologies/javase/javase8-archive-downloads.html)\n3. Install Intellij IDEA Ultimate: [link](https://www.jetbrains.com/idea/)\n4. Install Postgresql: [link](https://www.postgresql.org/download/)\n5. Open pgAdmin and create a new DB (name: perfume and perfumetest) in Postgresql: [link](https://www.guru99.com/postgresql-create-database.html#:~:text=PostgreSQL%20Create%20Database%20using%20pgAdmin)\n6. Add Postgresql properties to the application.properties file: [link](https://i.ibb.co/dL77cZS/prop-postgresql.png)\n7. Add Lombok and GraphQL plugins to the Intellij IDEA (File/Settings/Plugins)\n8. Register new AWS account: [link](https://portal.aws.amazon.com/billing/signup#/start)\n9. Create new S3 bucket: [link](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)\n10. Change access from private to public in S3 bucket\n11. Add public access policy to S3 bucket (!!!important!!! see:\n    [doc](https://docs.aws.amazon.com/AmazonS3/latest/userguide/access-policy-language-overview.html),\n    [github examle](https://stackoverflow.com/questions/58580042/how-to-set-public-read-only-access-on-amazon-s3-bucket#:~:text=To%20make%20objects%20publicly%20accessible%2C%20use%20a%20policy%20like%20this%3A) or\n    [my example](https://i.ibb.co/mSpHmyL/12-bucket.jpg ))\n12. Get AWS keys: [link](https://supsystic.com/documentation/id-secret-access-key-amazon-s3/) and add to the application.properties file: [link](https://i.ibb.co/FKFKR4n/props-aws.png)\n13. Register in gmail\n14. Configure reCAPTCHA: [link](https://www.google.com/recaptcha/admin#list), [guide](https://developers.google.com/recaptcha/docs/verify), [video guide (RUS)](https://youtu.be/7cDpbAbhyjc?t=212)\n15. Add  reCAPTCHA key to the application.properties file: [link](https://i.ibb.co/nDTP8H5/prop-recaptcha.png) and to [link](https://github.com/merikbest/ecommerce-spring-reactjs/blob/4f74f86500ab9363c04a18412dd432bd913e0477/frontend/src/pages/Registration/Registration.tsx#L134)\n16. Add gmail account and password to the application.properties file: [link](https://i.ibb.co/0tRr1Gy/props-gmail.png)\n17. Go to [link](https://myaccount.google.com/u/2/lesssecureapps) (important) and change to: “Allow less secure apps: ON”\n18. Configure OAuth2: [link](https://console.cloud.google.com/apis/credentials), [guide](https://spring.io/guides/tutorials/spring-boot-oauth2/), [video guide (RUS)](https://www.youtube.com/watch?v=-ohlXEJeRX8\u0026ab_channel=letsCode)\n19. Add OAuth2 properties to the application.properties file: [link](https://i.ibb.co/YpH4V3m/oauth2-props.png)\n20. Install node.js and npm: [link](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm)\n21. Now you can run EcommerceApplication (port 8080) and open terminal in client directory and type: npm start\n22. Navigate to http://localhost:3000\n\n## Swagger Documentation\n\nhttps://perfume-websore-api.herokuapp.com/swagger-ui.html \u003cbr/\u003e\nOr show local: \u003cbr/\u003e\nhttp://localhost:8080/swagger-ui.html\n\n## Screenshots\n\nMenu page  |  Product page\n:------------------------:|:-------------------------:\n![Menu page](https://i.ibb.co/VT4RzYj/1menu.jpg)  |  ![Product page](https://i.ibb.co/HtnKp0W/2-Product-page.jpg)\n\nCart  |  Ordering\n:------------------------:|:-------------------------:\n![Email template](https://i.ibb.co/8Y8bfSG/3-Cart.jpg)  |  ![List of users](https://i.ibb.co/tLmY8y2/4-Ordering.jpg)\n\nEmail template  |  List of orders\n:------------------------:|:-------------------------:\n![Email template](https://i.ibb.co/bmKTLPJ/email-template.jpg)  |  ![List of users](https://i.ibb.co/pLTyF25/6-List-of-orders.jpg)\n\nUser profile page  |  Add perfume page\n:------------------------:|:-------------------------:\n![User profile page](https://i.ibb.co/qx1Csc8/7-User-profile-page.jpg)  |  ![Add perfume page](https://i.ibb.co/XbsJPQH/8-Add-perfume-page.jpg)\n\nEdit perfume list  |  Edit perfume page\n:------------------------:|:-------------------------:\n![Edit perfume list](https://i.ibb.co/HFb9wfR/9-Edit-perfume-list.jpg)  |  ![Edit perfume page](https://i.ibb.co/jH8R8xL/10-Edit-perfume-page.jpg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneelimabonangi%2Fecommerce-reactjs-spring","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneelimabonangi%2Fecommerce-reactjs-spring","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneelimabonangi%2Fecommerce-reactjs-spring/lists"}