# Recipe Management Application

## Overview
The Recipe Management Application is a web-based system that allows users to create, view, update, and delete recipes. Recipes and ingredients are stored in a MySQL database and displayed through a web interface.

The application is built using Spring Boot for the backend, Thymeleaf for the frontend, and MySQL for data storage. The project is managed using GitLab for version control.

---

## Technologies Used

Backend
- Java
- Spring Boot
- Spring Data JPA

Frontend
- Thymeleaf
- HTML / CSS

Database
- MySQL

Tools
- Maven
- GitLab
- Eclipse or IntelliJ

---

## Features

- Create recipes
- View all recipes
- View recipe details
- Update recipes
- Delete recipes
- Store ingredients in a database

---

## Project Structure

```
src/main/java/com/example/demo
│
├── controller
├── service
├── service/impl
├── entity
├── dto
├── repository
└── exception

src/main/resources
├── templates
├── static
└── application.properties
```

---

## Setup Instructions

### 1. Clone the Repository

```bash
git clone https://gitlab.com/your-repository-name.git
cd your-repository-name
```

### 2. Create the Database

```sql
CREATE DATABASE recipe_db;
```

### 3. Configure Database Connection

Edit `src/main/resources/application.properties`

```properties
spring.datasource.url=jdbc:mysql://localhost:3306/recipe_db
spring.datasource.username=root
spring.datasource.password=yourpassword

spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true

spring.thymeleaf.cache=false
```

### 4. Run the Application

Using Maven:

```bash
mvn spring-boot:run
```

Or run the main Spring Boot application file in your IDE.

---

## Access the Application

Open a browser and go to:

```
http://localhost:8080
```

---

## GitLab Workflow

Create a branch for new features:

```bash
git checkout -b feature/feature-name
```

Commit changes:

```bash
git add .
git commit -m "Description of changes"
```

Push to GitLab:

```bash
git push origin feature/feature-name
```

Then create a Merge Request.

---

## Contributors

- Moon Gibson
- Cristian Gonzalez
- Kai HahnHansen
- Madeleine Stamp
- Autumn Wolf
