Skip to content

mrkeylost/CLafes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# CLafes ☕ Your CLI Coffee Shop Experience

A command-line application that simulates a coffee shop, allowing users to order, customize, and "enjoy" their favorite coffee beverages.

![License](https://img.shields.io/github/license/mrkeylost/CLafes)
![GitHub stars](https://img.shields.io/github/stars/mrkeylost/CLafes?style=social)
![GitHub forks](https://img.shields.io/github/forks/mrkeylost/CLafes?style=social)
![GitHub issues](https://img.shields.io/github/issues/mrkeylost/CLafes)
![GitHub pull requests](https://img.shields.io/github/issues-pr/mrkeylost/CLafes)
![GitHub last commit](https://img.shields.io/github/last-commit/mrkeylost/CLafes)

![Java](https://img.shields.io/badge/java-%23ED8B00.svg?style=for-the-badge&logo=openjdk&logoColor=white)
![Maven](https://img.shields.io/badge/apache_maven-%23C6A97E.svg?style=for-the-badge&logo=apache-maven&logoColor=black)

## 📋 Table of Contents

- [About](#about)
- [Features](#features)
- [Demo](#demo)
- [Quick Start](#quick-start)
- [Installation](#installation)
- [Usage](#usage)
- [Configuration](#configuration)
- [Project Structure](#project-structure)
- [Contributing](#contributing)
- [Testing](#testing)
- [Deployment](#deployment)
- [FAQ](#faq)
- [License](#license)
- [Support](#support)
- [Acknowledgments](#acknowledgments)

## About

CLafes is a fun and interactive command-line application built in Java that simulates the experience of ordering coffee at a coffee shop. This project serves as a demonstration of CLI application development, object-oriented programming principles, and basic input/output handling in Java.

This project aims to provide a simple and engaging way for users to interact with a simulated coffee shop environment directly from their terminal. It's perfect for Java beginners looking to explore CLI development or anyone who enjoys a bit of coffee-themed fun.

The application is built using Java and utilizes standard input/output streams for user interaction. The architecture is designed around a set of classes representing different aspects of the coffee shop, such as menu items, orders, and the ordering process itself.

## ✨ Features

-**Order Customization**: Customize your coffee with various options like milk, sugar, and flavorings.
- 🧾 **Order Summary**: View a detailed summary of your order before confirming.
- 💰 **Simulated Payment**: Complete your order with a simulated payment process.
- 🎨 **Interactive CLI**: Enjoy a visually appealing and easy-to-navigate command-line interface.
- 🛠️ **Extensible**: Easily add new coffee types, customizations, and features to the application.

## 🎬 Demo

Since this is a CLI application, a live demo isn't directly applicable. However, here are some screenshots showcasing the application's interface:

### Screenshots
![Main Menu](screenshots/main-menu.png)
*Main menu showing available coffee options*

![Order Customization](screenshots/order-customization.png)
*Order customization screen with various options*

![Order Summary](screenshots/order-summary.png)
*Order summary displaying the selected items and total cost*

(Note: Replace placeholder image names with actual screenshots once available)

## 🚀 Quick Start

Clone and run in 3 steps:

```bash
git clone https://github.com/mrkeylost/CLafes.git
cd CLafes
mvn compile && mvn exec:java -Dexec.mainClass="Main"

📦 Installation

Prerequisites

  • Java Development Kit (JDK) 11 or higher
  • Apache Maven

Steps

  1. Clone the repository:
git clone https://github.com/mrkeylost/CLafes.git
cd CLafes
  1. Build the project using Maven:
mvn clean install
  1. Run the application:
mvn exec:java -Dexec.mainClass="Main"

💻 Usage

After installation, run the application from the command line. Follow the on-screen prompts to browse the menu, customize your order, and complete the transaction.

mvn exec:java -Dexec.mainClass="Main"

The application will guide you through the ordering process.

⚙️ Configuration

This application does not currently utilize external configuration files or environment variables. All configurations are handled within the Java code. Future versions may incorporate configuration files for easier customization.

📁 Project Structure

CLafes/
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   ├── Main.java          # Main application entry point
│   │   │   ├── Coffee.java        # Coffee class
│   │   │   ├── Order.java         # Order class
│   │   │   └── ...               # Other classes
│   ├── test/
│   │   └── java/
│   │       └── ...               # Test files
├── pom.xml                      # Maven project configuration
├── README.md                    # Project documentation
└── LICENSE                      # License file

🤝 Contributing

We welcome contributions! Please see our Contributing Guide (Create a CONTRIBUTING.md file) for details.

Quick Contribution Steps

  1. 🍴 Fork the repository
  2. 🌟 Create your feature branch (git checkout -b feature/AmazingFeature)
  3. ✅ Commit your changes (git commit -m 'Add some AmazingFeature')
  4. 📤 Push to the branch (git push origin feature/AmazingFeature)
  5. 🔃 Open a Pull Request

Development Setup

# Fork and clone the repo
git clone https://github.com/yourusername/CLafes.git

# Navigate to the project directory
cd CLafes

# Create a new branch
git checkout -b feature/your-feature-name

# Make your changes and test
mvn test

# Commit and push
git commit -m "Description of changes"
git push origin feature/your-feature-name

Code Style

  • Follow existing code conventions
  • Use proper indentation and comments
  • Add tests for new features
  • Update documentation as needed

Testing

To run the tests, execute the following command:

mvn test

Deployment

This application can be deployed by packaging it as a JAR file and running it on any system with a compatible Java Runtime Environment (JRE).

  1. Create a JAR file:
mvn clean package
  1. Run the JAR file:
java -jar target/CLafes-1.0-SNAPSHOT.jar

FAQ

Q: How do I add a new coffee type to the menu?

A: Modify the Coffee class and the main menu logic in Main.java to include the new coffee type.

Q: Can I customize the application's appearance?

A: Currently, the application's appearance is limited to basic text formatting. Future versions may include more advanced customization options.

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

License Summary

  • ✅ Commercial use
  • ✅ Modification
  • ✅ Distribution
  • ✅ Private use
  • ❌ Liability
  • ❌ Warranty

💬 Support

🙏 Acknowledgments

  • 📚 Libraries used:
    • Apache Maven - Dependency management
  • 👥 Contributors: Thanks to all contributors

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages