https://github.com/andrealcobia/bookstore-stack
Bootstore-Stack is a full-stack web application that provides a web interface for managing bookstore information
https://github.com/andrealcobia/bookstore-stack
angular docker docker-compose gradle mysql spring-boot
Last synced: 5 months ago
JSON representation
Bootstore-Stack is a full-stack web application that provides a web interface for managing bookstore information
- Host: GitHub
- URL: https://github.com/andrealcobia/bookstore-stack
- Owner: andrealcobia
- Created: 2024-08-05T11:23:02.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-13T09:56:28.000Z (almost 2 years ago)
- Last Synced: 2025-08-03T12:38:41.743Z (11 months ago)
- Topics: angular, docker, docker-compose, gradle, mysql, spring-boot
- Language: TypeScript
- Homepage:
- Size: 189 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Bootstore-Stack
Bootstore-Stack is a full-stack web application that provides a web interface for managing bookstore information. This project consists of two main components:
- **Bookstore-Angular**: The frontend application built with Angular.
- **Bookstore-Spring**: The backend application built with Spring Boot.
- **MySQL Database**: Used for storing data.
- **Docker Compose**: Used to orchestrate the entire stack.
## Table of Contents
- [Project Structure](#project-structure)
- [Prerequisites](#prerequisites)
- [Installation](#installation)
- [Running the Application](#running-the-application)
- [Usage](#usage)
- [API Endpoints](#api-endpoints)
## Project Structure

## Prerequisites
Before running this project, ensure that you have the following installed on your machine:
- **Docker**: [Install Docker](https://docs.docker.com/get-docker/)
- **Docker Compose**: [Install Docker Compose](https://docs.docker.com/compose/install/)
- **Node.js**: [Install Node.js](https://nodejs.org/)
- **Java JDK 11+**: [Install JDK](https://openjdk.java.net/install/)
## Installation
1. **Clone the repository**:
```bash
git clone https://github.com/your-username/bootstore-stack.git
cd bootstore-stack
2. **Build the Angular frontend**:
```bash
cd bookstore-angular
npm install
npm run build
cd ..
3. **Build the Spring Boot backend**:
```bash
cd bookstore-spring
./gradlew build
cd ..
4. **Set up the MySQL database**:
The MySQL database is automatically configured using Docker Compose.
## Running the Application
To start the entire stack (Angular frontend, Spring Boot backend, and MySQL database), run the following command from the root directory:
```bash
docker-compose up --build
```
This command will:
- Start the MySQL database and initialize it with the necessary schema.
- Start the Spring Boot backend, which will connect to the MySQL database.
- Serve the Angular frontend.
- You can access the application at http://localhost:4200 and the Spring Boot API at http://localhost:8080
## Usage
- Access the Web Interface: Navigate to http://localhost:4200 in your web browser to access the Angular-based user interface.
- Manage Bookstore Data: Use the web interface to input and manage bookstore data, which is then saved to the MySQL database through the Spring Boot backend.
## API Endpoints
Here are the primary API endpoints provided by the Spring Boot backend:
- **GET** /api/books: Retrieve a list of all books.
- **POST** /api/books: Add a new book.
- **PUT** /api/books/{id}: Update an existing book.
- **DELETE** /api/books/{id}: Delete a book by its ID.