Welcome to the Sentient Coffee Machine API! This API is the core software that drives the "personality" and "intelligence" of a sentient coffee machine. It allows developers to integrate functionalities such as personality management, user preferences, coffee brewing, and personalized recommendations into their applications.
- Retrieve the current personality of the machine.
- Update the personality with parameters like mood, humor level, and talkativeness.
- Create user profiles and manage personalized coffee preferences.
- Retrieve and update preferences for specific users.
- Initiate and monitor the brewing process with customizable options for drink type, size, and other parameters.
- Record user interactions, including voice commands and drink ratings.
- Provide personalized coffee recommendations based on past interactions and preferences.
- Java Development Kit (JDK 11 or above).
- A database server (e.g., MySQL, PostgreSQL).
- A build tool like Maven or Gradle.
-
Clone this repository:
git clone https://github.com/yourusername/sentient-coffee-api.git cd sentient-coffee-api
-
Configure the database:
- Update the
application.properties
file in thesrc/main/resources
directory with your database credentials.
- Update the
-
Build and run the application:
./mvnw spring-boot:run
-
The API will be available at
http://localhost:8080
.
http://localhost:8080
- GET /personality: Retrieve the machine's current personality.
- PUT /personality: Update the machine's personality.
- POST /users: Create a new user profile.
- GET /users/{userId}/preferences: Retrieve coffee preferences for a specific user.
- PUT /users/{userId}/preferences: Update coffee preferences for a specific user.
- POST /brew: Start a new brewing cycle.
- GET /brew/{brewId}/status: Retrieve the status of a brewing cycle.
- POST /interaction: Record user interactions with the machine.
- GET /recommendations: Fetch coffee recommendations for a user.
For detailed API documentation, please refer to API_DOCS.md.
- Controllers: Handle incoming HTTP requests and route them to the appropriate services.
- Services: Contain business logic and interact with data repositories.
- Models: Represent data structures used throughout the application.
- Repositories: Handle database interactions.
- Define a new model if needed.
- Add a corresponding repository.
- Create a service with business logic.
- Expose the functionality through a controller endpoint.
We welcome contributions to improve the Sentient Coffee Machine API! To contribute:
- Fork the repository.
- Create a feature branch.
- Submit a pull request with detailed descriptions of changes.
This project is licensed under the MIT License. See the LICENSE file for details.
- Special thanks to all contributors and testers.
- Inspired by the need for smarter coffee machines.
Enjoy coding and caffeinating with the Sentient Coffee Machine API!