• Stars
    star
    348
  • Rank 121,514 (Top 3 %)
  • Language
    Java
  • License
    MIT License
  • Created over 6 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🔑 A simple ecommerce site powered with Spring Boot + Angular 10 + Ngrx + OAuth2

Keyist Ecommerce

Demo is now available at https://keyist-frontend.web.app/ 🔑

alt text

alt text

alt text

alt text

Getting Started

This project is a simple e-commerce website powered by Angular 10 on the frontend and Spring Boot for the backend.
For the full stack list please visit "Built With" section below.

Ecommerce 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 an 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 a patience :)

Updated

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 aplication instances in one command!

About This Project

  • You can browse items or select an item from the showcase and preview.
  • Browse section remembers your list choice, so even if you leave the page, when you come back you do not need to fetch products again.
  • Your cart is saved on the database so you can login from different sources and still be able to use your cart.
  • You can use discount coupons!
  • You can store your information for faster purchase.
  • You can view your orders and change your account settings.
  • You can request a password forgot request and use the token in your mail.
  • You can search items.

Disclaimer

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.

Prerequisites

What things 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.

Installing

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 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.

Built With

Known Bugs and Issues

  • CORS filter allows requests from every url.
  • You might be interested is not functional at this version.
  • Sometimes when you refresh the page loading cart stucks.
  • No admin panel at all as of yet.
  • Shipping status only supports packaging and shipped ( 0-1 )
  • No cargo firm selecting when purchasing.
  • Mobile devices are not supported, yet. Contributons are welcome!

Contributing

If you want to contribute to this project you can email me - [email protected] or you can pull request.

Versioning

This project does not have versioning and made with learning purposes.

Authors

  • Ant Kaynak - Initial work - Github

License

This project is licensed under the MIT License - see the LICENSE.md for details.

Questions

If you have any questions mail me - [email protected]

More Repositories

1

AntChat

A desktop chat application powered by JavaFX
Java
11
star
2

AntiSocial-Platform

Social media platform to showcase MVC Structure
Java
10
star
3

Painterino-v2

A multiuser sketching game where one user draws a word and other players in the room try to guess what it is!
TypeScript
9
star
4

Painterino-Online-Paint

Online paint web application
Java
7
star
5

Inventory-Management-App

A simple demo application to showcase Spring Data and Spring Boot OAuth2 implementations.
JavaScript
7
star
6

GoGame

A full-stack web application to demonstrate how a convolutional neural network works with a fun game, Go!
Python
6
star
7

Evaluate-mathematical-expression

Codewars Evaluate mathematical expression kata solution
JavaScript
5
star
8

Pinger

A simple nodeJS app to ping servers and alert if it is down
JavaScript
3
star
9

SpringBoot-Starter

Some starter files for spring boot web application.
Java
3
star
10

DS_Efficiency

Full codes from my project for CS Data Structures course.
Java
2
star
11

Native-Local-Storage

A simple contact list web application powered by native Local Storage and JQuery.
JavaScript
2
star
12

Hibernate-Demo

A simple console application to demonstrate usage of Hibernate with Spring configure.
Java
2
star
13

AntChat-Showcase

A simple static website to showcase AntChat
2
star
14

Node-Express-HandleBars

Demo application to showcase NodeJS + ExpressJS + HandleBarsJS template rendering
JavaScript
2
star
15

CPP-Signals

Simple os signal demo app
C++
2
star
16

Node-SocketIO

A chat app to showcase nodejs + expressjs and socketio
JavaScript
2
star
17

SpringMVC-Hibernate-Validator-Demo

A simple application to demonstrate usage of Hibernate Validator with Spring MVC.
Java
2
star
18

Jsp-Servlet-MySQL

A simple example to access a MySQL database using JSP-Servlet ( MVC Structure ). This project uses maven.
Java
2
star
19

Hibernate-OneToOne-OneToMany-Example

A simple application to demonstrate usage of Hibernate's OneToOne, OneToMany and ManyToOne Cascade operations.
Java
2
star
20

AntPaint-JavaFX

A simple desktop paint application written in Java and JavaFX.
Java
1
star
21

HW2

C++
1
star
22

cinsw

Java
1
star
23

JavaBankSimulator

A simple console bank simulator written in java.
Java
1
star
24

JavaEE-Servlet-JSP-MVC

An example application for a MVC JavaEE project with JSP and Servlets.
Java
1
star
25

JavaPetList

A simple java console application to practice inheritance between two classes.
Java
1
star
26

JavaDistinctWordCounter

A simple consola application to count distinct words in a text or xml file.
Java
1
star
27

JavaFX-SQL-Login-Template

Template for SQL interactions in JavaFX with Connector J ( MySQL )
Java
1
star
28

antkaynak

1
star