Skip to content

Commit

Permalink
readme
Browse files Browse the repository at this point in the history
  • Loading branch information
CKjolhede committed Jun 20, 2024
1 parent 13ab5c4 commit cebcca4
Showing 1 changed file with 5 additions and 112 deletions.
117 changes: 5 additions & 112 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,123 +55,16 @@ pipenv shell
![Schema] (./lib/assets/Monopolython(3).png)
4 tables reside within the database to organize and store game data for both during game_setup
and synchronous data storage and retrieval during game play.
A CLI is, simply put, an interactive script and prompts the user and performs
operations based on user input.

The project template has a sample CLI in `lib/cli.py` that looks like this:
![alt text](<lib/assets/Monopolython (3).png>)

```py
# lib/cli.py
This diagram dipicts the One to Many relationships between the Games table and both the Players and Game_spaces tables.

from helpers import (
exit_program,
helper_1
)
The Spaces table is a unique table that is static. It is the root source of game information that exists for every game encounter.

The CLI menus are designed to offer users a small number of options to navigate their way through the game experience. Starting with the game setup, the diagram below offers a roadmap of the flow of the program throughout the beginning of the game.

def main():
while True:
menu()
choice = input("> ")
if choice == "0":
exit_program()
elif choice == "1":
helper_1()
else:
print("Invalid choice")
![alt text](lib/assets/gameboard2.jpg)


def menu():
print("Please select an option:")
print("0. Exit the program")
print("1. Some useful function")


if __name__ == "__main__":
main()
```

The helper functions are located in `lib/helpers.py`:

```py
# lib/helpers.py

def helper_1():
print("Performing useful function#1.")


def exit_program():
print("Goodbye!")
exit()
```

You can run the template CLI with `python lib/cli.py`, or include the shebang
and make it executable with `chmod +x`. The template CLI will ask for input, do
some work, and accomplish some sort of task.

Past that, CLIs can be whatever you'd like, as long as you follow the project
requirements.

Of course, you will update `lib/cli.py` with prompts that are appropriate for
your application, and you will update `lib/helpers.py` to replace `helper_1()`
with a useful function based on the specific problem domain you decide to
implement, along with adding other helper functions to the module.

In the `lib/models` folder, you should rename `model_1.py` with the name of a
data model class from your specific problem domain, and add other classes to the
folder as needed. The file `lib/models/__init__.py` has been initialized to
create the necessary database constants. You need to add import statements to
the various data model classes in order to use the database constants.

You are also welcome to implement a different module and directory structure.
However, your project should be well organized, modular, and follow the design
principal of separation of concerns, which means you should separate code
related to:

- User interface
- Data persistence
- Problem domain rules and logic

---

## Updating README.md

`README.md` is a Markdown file that should describe your project. You will
replace the contents of this `README.md` file with a description of **your**
actual project.

Markdown is not a language that we cover in Flatiron's Software Engineering
curriculum, but it's not a particularly difficult language to learn (if you've
ever left a comment on Reddit, you might already know the basics). Refer to the
cheat sheet in this assignments's resources for a basic guide to Markdown.

### What Goes into a README?

This README serves as a template. Replace the contents of this file to describe
the important files in your project and describe what they do. Each Python file
that you edit should get at least a paragraph, and each function should be
described with a sentence or two.

Describe your actual CLI script first, and with a good level of detail. The rest
should be ordered by importance to the user. (Probably functions next, then
models.)

Screenshots and links to resources that you used throughout are also useful to
users and collaborators, but a little more syntactically complicated. Only add
these in if you're feeling comfortable with Markdown.

---

## Conclusion

A lot of work goes into a good CLI, but it all relies on concepts that you've
practiced quite a bit by now. Hopefully this template and guide will get you off
to a good start with your Phase 3 Project.

Happy coding!

---

## Resources

- [Markdown Cheat Sheet](https://www.markdownguide.org/cheat-sheet/)

0 comments on commit cebcca4

Please sign in to comment.