Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/davenaugler/assignment_9_recipefinder

This Java application parses a recipes.txt file using Apache Commons CSV, stores the data in a Collection, and provides access via RESTful endpoints with Spring Boot.
https://github.com/davenaugler/assignment_9_recipefinder

csv-parser java maven rest-api spring-boot

Last synced: about 2 months ago
JSON representation

This Java application parses a recipes.txt file using Apache Commons CSV, stores the data in a Collection, and provides access via RESTful endpoints with Spring Boot.

Awesome Lists containing this project

README

        

# Recipe Collection Finder

## Description
This project is a Java-based application that parses a recipe.txt file and stores the data in a Java Collection. It uses the Apache Commons CSV project for parsing. The data is stored in a POJO (Recipe) and is accessible through a set of RESTful endpoints created using Spring Boot.

## Features
- Parses recipes.txt file using Apache Commons CSV.
- Stores data in Recipe objects within a Java Collection.
- Provides RESTful endpoints to access and filter recipe data.

## Endpoints
- /all - Returns all recipes.
- /gluten-free - Returns recipes that are gluten-free.
- /vegan - Returns vegan recipes.
- /vegan-and-gluten-free - Returns recipes that are both vegan and gluten-free.
- /vegetarian - Returns vegetarian recipes.

## Side Notes
This was an opportunity to further my refactoring understanding on common files we code out. I took that opportunity and applied it throughout the project.

- Recipe.java is using Lombok to reduce the clutter.
- @Data is generating getters, setters, `toString`, `equals`, and `hashCode` methods
- @NoArgsConstructor is generating a no-argument constructor

Additional methods are within `RecipeRepository.java` for future features. Thoese methods are...
- getRecipeById()
- addOrUpdateRecipe()
- deleteRecipe()

## Getting Started
- Setup Project: Clone this repository and import it into your IDE.
- Start Spring Boot Application: Run the application to start the Spring Boot server.
- Access Endpoints: Use an API testing tool like Postman to access the endpoints.

## Prerequisites
- Java
- Maven
- Apache Commons CSV
- Spring Boot (start.spring.io for setup)

## Installation
- Download a fresh Spring Boot project from [start.spring.io](https://start.spring.io/).
- Import the project into your IDE.
- This project is using [Apache Commons CSV Central 1.10.0](https://mvnrepository.com/artifact/org.apache.commons/commons-csv/1.10.0). You may
- Add dependencies for Apache Commons CSV in your pom.xml.

## Usage
- Run the application and make HTTP requests to the provided endpoints to filter and access the recipe data.

## Contributing
- Contributions, issues, and feature requests are welcome. Please check the issues page before opening a new issue.

## License
- [MIT]()