Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/hoangtien2k3/shopapp-backend

Source backend for website/mobile about electro, e-commerce using Java, using multi-language (EN, VI), and today's popular technologies
https://github.com/hoangtien2k3/shopapp-backend

backend-service docker docker-compose flyway-migrations java kafka mysql8 redis restful-api spring-boot swagger-docs swagger-ui

Last synced: about 5 hours ago
JSON representation

Source backend for website/mobile about electro, e-commerce using Java, using multi-language (EN, VI), and today's popular technologies

Awesome Lists containing this project

README

        

![](images/logo_images.png)

# Shopp App - Backend

Backend system provides restful API for web or mobile.

[![CircleCI](https://circleci.com/gh/piomin/sample-spring-microservices-new.svg?style=svg)](https://app.circleci.com/pipelines/circleci/WpJpWzbAX4Dvhh2AjRnJmX/X6V4xLymFHgq4YEPN1Aiia)

[![SonarCloud](https://sonarcloud.io/images/project_badges/sonarcloud-black.svg)](https://sonarcloud.io/project/overview?id=hoangtien2k3_shopapp-backend)
[![Bugs](https://sonarcloud.io/api/project_badges/measure?project=hoangtien2k3_shopapp-backend&metric=bugs)](https://sonarcloud.io/project/overview?id=hoangtien2k3_shopapp-backend)
[![Coverage](https://sonarcloud.io/api/project_badges/measure?project=hoangtien2k3_shopapp-backend&metric=coverage)](https://sonarcloud.io/project/overview?id=hoangtien2k3_shopapp-backend)
[![Lines of Code](https://sonarcloud.io/api/project_badges/measure?project=hoangtien2k3_shopapp-backend&metric=ncloc)](https://sonarcloud.io/project/overview?id=hoangtien2k3_shopapp-backend)

In this project I'm demonstrating you the most interesting features
of [Spring Cloud Project](https://spring.io/projects/spring-cloud) for building microservice-based architecture.

## Introduction 💗💎❤️

Welcome to the backend component of `shopp-app backend (e-ecommerce)`. This Java Spring boot backend is designed to
handle the server-side logic and data processing for my application.

## Prerequisites 🌀

✅ Before you begin, ensure you have met the following requirements:

- Java Development Kit `(JDK) 17` or higher installed.
- Build tool (`Maven`) installed.
- Database system (e.g., `MySQL8`) set up and configured.
- Liquibase Migration Database `MySql8`
- Reactive Programming with WebFlux Reactor Spring Boot.
- Hibernate, JPA
- Docker build
- Restfull API
- PostMan Testing API and Client.
- Send message and receiver using Kafka server, Zookeeper, Broker.
- Redis cache database
- Flyway migration database version

## ✅Features

- Provides all the necessary and most basic APIs of a website or mobile app for Shopp App and E-Ecommerce

## Getting Started

Follow these steps to set up and run the backend:

1. Clone the repository:

```bash
git clone https://github.com/hoangtien2k3/shopapp-backend.git
```

#### 1. Navigate to the project directory:

```bash
cd shopapp-backend
```

#### 2. Build the project:

```bash
# Using Maven
mvn clean install
```

#### 3. Configure the database:

- Update `application.yml` with your mysql database connection details.

#### 4. Run Docker (docker-compose)

```bash
cd shopapp-backend

#run docker-compose
docker-compose up -d
```

#### 5. Create [DATABASE](https://github.com/hoangtien2k3/shopapp-backend/blob/master/src/main/resources/database.sql) `shopapp` and add data demo: [DATA-DEMO](https://github.com/hoangtien2k3/shopapp-backend/blob/master/src/main/resources/data_sql.sql) in database Docker

#### 6. Run the application:

```bash
# Using Maven
mvn spring-boot:run
```

## Databaes Mysql8

![mysql-8](images/database_diagram.jpg)

## Swagger-ui

[http://localhost:8080/swagger-ui/index.html](http://localhost:8080/swagger-ui/index.html)

![swagger-ui](images/swagger-ui.jpg)

## PostMan Client

![postman-project](images/postman_project.jpg)

## Technologies Used

- `Java`: The primary programming language.
- `Spring Boot`: Framework for building Java-based enterprise applications.
- `Maven/Gradle`: Build tools for managing dependencies and building the project.
- `Database`: Choose and specify the database system used (e.g., MySQL8).
- `Other Dependencies`: List any additional dependencies or libraries used.
- `Cache`: Using redis cache db

## API Documentation

Document the API endpoints and their functionalities. You can use tools like `Swagger` for
automated `API documentation`.

## Contributing

If you would like to contribute to the development of this project, please follow our contribution guidelines.

![Alt](https://repobeats.axiom.co/api/embed/bfdb10716287df967ceac87f5b14025d135937ec.svg "Repobeats analytics image")

## License

This project is licensed under the [`MIT License`](LICENSE).

```text
MIT License
Copyright (c) 2024 Hoàng Anh Tiến
```

## Contributors ✨



Hoàng Anh Tiến

💻 🚧 🤔 🎨 🐛