/beergame

You are now in charge of creating a system that would efficiently produce and sell Beer, with the ultimate goal of making sure everyone on the planet (or the galaxy) has enough beers forever. So use this software to manage your beer supply chain properly.

Primary LanguageC++

Beer Game 🍻

Built with C++ GitHub release Platforms

Table of Contents

About the Project

The beer game is an online game intended for students to better understand how supply chain works in a real world situation, applying the theory learned in class and practicing decision making. Therefore it is a functional type of game. This project simulates the way beer is being ordered and delivered from production and factory, going to distributor, then wholesaler and then to retailer and consumer. Each of these stages can be played by the students who, order enough beer stock in the position they hold, taking into consideration shipment times, delays, backorders, inventory such that, every partner in this chain doesn’t suffer any losses.

Built with

Getting Started

These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.

Getting started

What things you need to install the software and how to install them

Prerequisites

  • Qt5 SDK
brew install qt5
  • GTest

Installion on Linux

sudo apt-get install libgtest-dev

Installation on Mac

brew install libgtest-dev

Installation

Clone the repo

git clone https://github.com/iuliacornea99/se-05-team-22

Run the app

cd build
cmake .. -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
make
cd src
./beergame

Run the tests

cd build
cmake .. -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
make
cd tests
./beergame-test

You have to set your Qt location in CMakeLists if it doesn't work via set(CMAKE_PREFIX_PATH PATH_TO_QT)

To make docs

The documentation is automatically generated when we run make after cmake ...

and then the documentation can be found within the directory doc that is inside build.

Current UI Guide

Currently a login ui has been implement where :

For Instructor:

User Email : instructor
Password   : 123
Instructor : ✅ (True)

For Player:

User Email : player
Password   : 123
Instructor : (Not ticked : False)

(Currently we dont have an authentication mechanism.)

User Guide

If you want to run the server and the client individually then after you build the project:

Server

To run server :

cd build/src/server
./beergame-server

Client

To run client :

cd build/src/client
./beergame-client

Milestones/Features Added

  • Implemented Network based game with instructor creating a server where players join as client.

  • Implemented Graphing function for Network based client.

  • Added an window icon for the game.

  • Fix the numerous compilation errors from the previous codebase.

  • Added the statistics/graphs functionalities for player.

  • Added test cases in tests.cpp for all functionalities.

  • Added an Extensive Demo It in youtube for User convenience to the software.

  • Refactored the Game logic for all classes.

  • Inhance the UI and add the window icon.

Server & Client :

drawing drawing drawing drawing drawing

Contributing

Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.

  1. Fork the Project
  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

Acknowledgments

  • Software engineering Teaching Assistants