Skip to content
This repository has been archived by the owner on Jan 17, 2024. It is now read-only.

Commit

Permalink
Merge pull request #101 from ur-cs-courses/Updating-readmes-and-userg…
Browse files Browse the repository at this point in the history
…uide

Updated Readmes and User Guide
  • Loading branch information
lizlouise1335 authored Dec 15, 2023
2 parents f8dc48a + 793a8d6 commit f2200cb
Show file tree
Hide file tree
Showing 19 changed files with 53 additions and 37 deletions.
9 changes: 5 additions & 4 deletions app/APP.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# Applications

The robot fleet management system will be a high level application.
It will need to communicate with a simulator and a back end storage system.
Any other apps you require may be included in here.

By convention, these applications use the libaries you create.
So maybe you have a library of robots, then the application should include the header for it like `say_hello` does with `libhello`.
Our fleet management app is a command line interface (CLI) that uses/communicates with only the `manage` library, which itself communicates with Room and Robot libraries.

When running our app, the user should see this (after successfully building the project):

![CLI view](../docs/user-guide/program_run.png)
4 changes: 2 additions & 2 deletions app/fleet_manager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ int main() {
robotFile.close();
std::cout << "Robot information saved to " << csvPathRobot << std::endl;
} else {
std::cerr << "Unable to open robot CSV file: " << std::strerror(errno) << std::endl;
std::cerr << "Unable to open robot CSV file: " << csvPathRobot << std::endl;
}

std::ofstream roomFile(csvPathRoom);
Expand All @@ -117,7 +117,7 @@ int main() {
roomFile.close();
std::cout << "Room information saved to " << csvPathRoom << std::endl;
} else {
std::cerr << "Unable to open room CSV file: " << std::strerror(errno) << std::endl;
std::cerr << "Unable to open room CSV file: " << csvPathRoom << std::endl;
}

return 0; // Exit the while loop and end the program
Expand Down
19 changes: 14 additions & 5 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,19 @@
# Welcome to Our Application!

This file is the root of your documentation tree.
You will write all of these in [Markdown](https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/quickstart-for-writing-on-github) and GitHub will render them.
Our docs directory includes:
- `design` - contains the design documentation for our planned or implemented classes in the project. See [DESIGN](docs/design/DESIGN.md) for the detailed explanation of our libraries and interactions between classes.
- `review` - contains our Sprint review documentation files that each describe:
+ What we accomplished in a period of 2 weeks
+ What was not completed
+ What we expect to do for the next Sprint review
+ What needs improvement (regarding team collaboration)
- `use_cases` - contains the [use case](use_cases/USE_CASES.md) documentation for our project
- `user-guide` - a document providing a step-by-step [user guide](user-guide/USER_GUIDE.md) for running our fleet management [app](../app/APP.md).
- [Stand Up](docs/STANDUP.md) documentation file that contains our progress made a week before each sprint review.

## Designs and Documentation

Each new piece of your system, such as a library or an app, needs a new directory.
Example: you make a storage backend library, `libstorage` - then its docs folder will be title `libstorage` and hold one or more README files and PlantUML models.
To manage the links among the files, see [this guide](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-readmes#relative-links-and-image-paths-in-readme-files) on README links.
Our designs for this project are categorized based on the type of diagrams:
- [Activity Diagram](design/activity_diagram) - contains the high-level view of class functionality and interactions
- [Class Diagrams](design/class_diagrams) - contains Management, Room, Robot
- [Sequence Diagrams](design/sequence_diagrams) - contains the models of interactions between classes for adding a new robot or room, requesting statuses, cleaning.
14 changes: 7 additions & 7 deletions docs/design/DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Potential Design Ideas:

## Management Class Diagram Overview

![Diagram Description](images/management_class_diagram.png)
![Diagram Description](class_diagrams/management_class_diagram.png)

This document describes the class diagram for a simple management system that involves room cleaning by robots. The system focuses on the attributes of the main class, Management, and mentions its relationships with other classes and interfaces (CommandLine, Robots, Rooms).

Expand Down Expand Up @@ -56,7 +56,7 @@ Relationships

## Robot Class Diagram Overview

![Diagram Description](images/robot_class_diagram.png)
![Diagram Description](class_diagrams/robot_class_diagram.png)

This document describes the class diagram for a system of robots that involves receiving input commands and cleaning rooms. The system focuses on the attributes of the Robot class and mentions its relationships with other classes and interfaces (Management, Rooms).

Expand Down Expand Up @@ -99,7 +99,7 @@ Relationships

## Room Class Diagram Overview

![Diagram Description](images/room_class_diagram.png)
![Diagram Description](class_diagrams/room_class_diagram.png)

This document describes the class diagram for a system of rooms that involves maintaining the cleanliness. The system focuses on the attributes of the Room class and mentions its relationships with other classes and interfaces (Management, Robots, and enum classes Status and Size).

Expand Down Expand Up @@ -145,7 +145,7 @@ This documentation explains a sequence diagram that outlines the interactions be
4. `Rooms (R)`: Represents the rooms available for cleaning.

## Cleaning Sequence Diagram
![Diagram Description](images/cleaning_sequence_diagram.png)
![Diagram Description](sequence_diagrams/cleaning_sequence_diagram.png)

## Components

Expand Down Expand Up @@ -191,7 +191,7 @@ This documentation explains a sequence diagram that outlines the interactions be


## Requesting Room and Bot Status Sequence Diagram
![Diagram Description](images/requesting_status_sequence_diagram.png)
![Diagram Description](sequence_diagrams/requesting_status_sequence_diagram.png)

- `CommandLine requests room or bot status from management`
- `Management`
Expand All @@ -201,7 +201,7 @@ This documentation explains a sequence diagram that outlines the interactions be


## Adding New Rooms and Bots Sequence Diagram
![Diagram Description](images/adding_sequence_diagram.png)
![Diagram Description](sequence_diagrams/adding_sequence_diagram.png)

- `CommandLine requests add new bot/room from management`
- `Management`
Expand Down Expand Up @@ -234,4 +234,4 @@ This documentation explains an activity diagram that outlines the overall activi
- Check Robot Status
- Check Room Status

![Diagram Description](images/activity_diagram.png)
![Diagram Description](activity_diagram/activity_diagram.png)
12 changes: 11 additions & 1 deletion docs/user-guide/USER_GUIDE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,13 @@
# This is your user guide's top level!

Tell those users what to do!
To access the our fleet management system, open your desired command terminal and navigate to our project which is called `course-project-krykna` and enter the following sequence of commands to create an executable for our app, as well as other features such as our test executables:

![Build commands](build_commands.png)

Once the build is completed, you should be able to navigate (change directory) to the app directory which should contain our app executable which is called `fleet_manager`:
![Run fleet manager app](run_app.png)

After running these two commands, the terminal should now display this:
![program run](program_run.png)

And this concludes our user guide for running the robot fleet management app. Have fun!
Binary file added docs/user-guide/build_commands.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/user-guide/program_run.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/user-guide/run_app.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 8 additions & 5 deletions include/INCLUDE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
# Libraries
For this project, the library convention will be that each supporting library will live within its own subfolder.
Right now, there is one `libhello` library.
If you need to make a support library for the simulator, it might be `libsim`.

Header only libraries are fine.
To see the advantages and disadvantages, take a look at [this SO discussion](https://stackoverflow.com/questions/12671383/benefits-of-header-only-libraries).
Our supporting libraries live within their own subfolders:
- `manage` - contains the header file/library for Management implementation file
- `libroom` - contains the header file/library for room implementation file
- `libRobot` - contains the header file/library for Robot implementation file

The corresponding implementation files can be found in the [src](src\SRC.md) directory.

We also added a header only file for [Catch2](https://github.com/catchorg/Catch2/blob/devel/docs/tutorial.md#top) testing
6 changes: 4 additions & 2 deletions src/SRC.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# Libraries - Source
You may optionally implement your libraries as cpp files in here.
See the `include` readme for more discussion.
This src directory contains the implementations of our supporting libraries:
- `manage` - Management.cpp
- `libroom` - Robot.cpp
- `libRobot` - room.cpp
4 changes: 2 additions & 2 deletions tests/TESTS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Project tests

You will use [Catch2](https://github.com/catchorg/Catch2/blob/devel/docs/tutorial.md#top) to develop all unit tests for this project.
Here is their tutorial!
Our tests are implemented using the [Catch2](https://github.com/catchorg/Catch2/blob/devel/docs/tutorial.md#top) to develop all unit tests for our project.
We have test files for robot, room, and management classes.
9 changes: 0 additions & 9 deletions tests/next_test.cpp

This file was deleted.

0 comments on commit f2200cb

Please sign in to comment.