Demo is now available at https://keyist-frontend.web.app/ 🔑
This project is a simple e-commerce website powered by Angular 10 on the frontend and Spring Boot on the back end.
For the full stack list please visit the "Built With" section below.
E-commerce is a complex business. It involves many edge cases and a solid system architecture. This project is simply a demo demonstrating basic features which is only the tip of the iceberg. This project might ( and certainly does ) have bugs, vulnerabilities, or some other types of issues. So, contributions are always welcome :)
The demo is under free hosting, so it may require a bit of patience :)
This project is upgraded to Java 11, Spring Boot 2.3.3, and Angular 10+ and some new features added!
A docker-compose.yml added for you to bootstrap all of the application instances in one command!
This is a fully functional demo site and may have security vulnerabilities as user data is not encrypted with SSL.
The provided codes are not ready for production and should only be used for education purposes.
What things do you need to install
Angular CLI is recommended.
You need Tomcat server 8 or above installed or you can use embedded spring boot tomcat jar.
Locally installed MySQL or a MySQL server.
Compatible IDE, Intellij IDEA recommended for this project.
If you want to run the Dockerized version keep in mind that you must install Docker. Also please note that booting up with docker-compose might take approx. 10-30min depending on your internet connection. After the initial setup, all other subsequent docker-compose commands will run much faster due to caching.
The codes are split into 3 sections.
frontend - Angular 10 ,
resource_server - Spring Boot Backend ,
authorization_server - A Spring Boot OAuth2 Authorization server.
To run the application fill the lines in the resource server and authorization server application.properties as well as frontend application service URLs.
For MySQL Database
SQL script can be found in the sql folder.
script.sql contains both the basic user info and the tables for the oauth2 implementation.
For Tomcat Application Server
Use Tomcat 8.5.23 or above and compile to generate WAR file.
If you want you can use Spring Boot embedded tomcat JAR file and host it.
Keep in mind that both authorization and backend server's pom.xml is configured to compile a jar file.
For Undertow Application Server
This project uses undertow as default.
Keep in mind that both authorization and backend server's pom.xml is configured to compile a jar file.
This project uses Java Mail to create an embedded SMTP server.
You can configure your own settings in the yaml file depending on your email provider or you can disable Java Mail altogether.
For Docker
In the root folder run the following command
docker-compose up
If you want to use development versions of the Dockerfiles, you need to setup docker-compose-yml to build using Dockerfile.dev.
If you want to contribute to this project you can email me - [email protected] or you can pull a request.
This project does not have versioning and is made with learning purposes.
This project is licensed under the MIT License - see the LICENSE.md for details.
If you have any questions mail me - [email protected]