This project was a collaboration between 4 individuals with its work broken into a weekly team portion and a weekly individual portion (separate from the team portion). This repository reflects the weekly individual portion. To see the weekly team portions, please follow this link: Team Portion of Coffee Maker Project. Note that, necessarily, work from both the team portion is present in the individual repository and vice versa in order to make a functioning application.
The Coffee Maker Application is a Java-based software system designed to simulate a coffee maker. It allows users to update inventory, add a recipe, edit recipes, delete recipes, make coffee, add ingredients, and to do so through a web-based interface.
The project is organized into the following files and folders:
.github
: GitHub-specific configuration files.CoffeeMaker
: The main project folder..mvn/wrapper
: Maven wrapper files for project setup.src/main
: The main source code directory.java/edu/ncsu/csc/CoffeeMaker/controllers
: Controllers for handling web requests.APICoffeeController.java
: Controller for coffee-related API operations.APIController.java
: General API controller.APIIngredientController.java
: Controller for ingredient-related API operations.APIInventoryController.java
: Controller for inventory-related API operations.APIRecipeController.java
: Controller for recipe-related API operations.MappingController.java
: Mapping controller.
models
: Model classes representing domain objects.DomainObject.java
: Base class for domain objects.Ingredient.java
: Represents an ingredient.Inventory.java
: Represents the inventory of ingredients.Recipe.java
: Represents a coffee recipe.
repositories
: Data repositories for interacting with the database.IngredientRepository.java
: Repository for ingredients.InventoryRepository.java
: Repository for inventory.RecipeRepository.java
: Repository for recipes.
services
: Service classes for business logic.IngredientService.java
: Service for ingredient-related operations.InventoryService.java
: Service for inventory-related operations.RecipeService.java
: Service for recipe-related operations.Service.java
: Base service interface.
CoffeeMakerApplication.java
: Main Spring Boot application class.
resources
: Configuration and static resource files.static/css
: CSS stylesheets.templates
: HTML templates.application.yml.template
: Application configuration template.
test/java/edu/ncsu/csc/CoffeeMaker
: Unit and integration tests.api
: API tests.common
: Common test utilities.unit
: Unit tests for various components.
.gitignore
: Git ignore file.pom.xml
: Maven project configuration file.images
: Images related to the project (e.g., diagrams).README.md
: This README file.
The Coffee Maker Application consists of several components, including:
- Controllers: Handle incoming HTTP requests and manage routing.
- Models: Represent the core data structures of the application.
- Repositories: Provide data access methods to interact with the database.
- Services: Handles CRUD operations performed on models.
- HTML Templates: Define the structure of web pages.
- CSS Stylesheets: Define the application's styling.
- Unit and Integration Tests: Ensure the application functions correctly.
To run the Coffee Maker Application:
- Clone the repository to your local machine.
- Open the project in your preferred IDE.
- Build the project and resolve any dependencies.
- Run the
CoffeeMakerApplication.java
class to start the application. - Access the application in a web browser at
http://localhost:8080
.
The project includes unit and integration tests located in the test
directory. You can run the tests to ensure the correctness of the application's components and functionality.