Skip to content

PieThonistas/PyGirl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PyGirl

GroupName:

PieThonistas

Members:

Ella Svete, Katrina Hill, Michelle Salazar, Rachel Freeland

401 Midterm

Project Links:

Trello: https://trello.com/b/wHD3YEbn/piethonistas-hangman

Vercel: https://py-girl-oygew4mkj-piethonistas.vercel.app/api/pygirl

github: https://github.com/PieThonistas

**Presentation:**https://docs.google.com/presentation/d/1Kw_yGqmRB4w6tp9e6dTCNmO65lKb3KGPHHph8ZmbPP4/edit#slide=id.g2accd1c413_3_31

Wireframe:

Domain Modeling:

Team Plan:

Cooperation Plan

  • Every person on your team is an asset. This is your chance to discover the hidden strengths and areas for growth for each team member.

Describe at least:

What are the key strengths of each person on the team?

Katrina Research, resources, asking for help
Ella collaboration, staying on track, willing to stay till its done, asking for help
Rachel committed to finishing, research, not asking for help
Michelle Organization, research, not asking for help

How can you best utilize these strengths in the execution of your project?
For those good at asking for help, they can keep team on track, not lose time when problem is beyond 15 mins.
Researchers can branch off and seek answers while team continues to work on project.

In which professional competencies do you each want to develop greater strength?
Michelle- write code, practice syntax
Ella - wants to be part of the programming so that she understands the code, navigating
Rachel - wants to try driving more and write code
Katrina - navigating, writing code

Knowing that every person in your team needs to understand all aspects of the project, how do you plan to approach the day-to-day work?
• Morning and afternoon standups
• Morning- discuss MVP for day
• Afternoon- discuss what our progress and challenges

NOTE: Undoing, Redoing, Replacing, or otherwise steamrolling the project as an individual is considered to be unacceptable. Account for the inevitable divergence of ideas, execution tasks, and assignments of duties here.

Conflict Plan

Your team should agree on a process for handing disagreements, should they arise. It is better to have a plan in place ahead of time so you can all refer back to it when necessary.

Describe at least:

What will be your group’s process to resolve conflict, when it arises?
The group will discuss concerns, if unresolveable will reach out to instructor.
• Take time out and come back and attempt a resolution

What will your team do if one person is taking over the project and not letting the other members contribute?
The person taking control might not know, so let them be aware of the situation.

How will you approach each other and the challenges of the project knowing that it is impossible for all members to be at the exact same place in understanding and skill level?
Add notes to code so other team members know whats going on. Pseudo code project before starting so we have a plan on what goes where. ** use TODO's**

How will you raise concerns to members who are not adequately contributing?
Group will discuss in standups
Reach out and ask if teammate is ok? (possibly have personal things going on) what can we do to support team member?

How and when will you escalate the conflict if your resolution attempts are unsuccessful?
Group will try to resolve if no resolution, the conflic will be escalated to instructor.

Communication Plan

Before beginning to tackle the project, determine how your group will communicate with each other. This is not an individual effort. Make sure everyone feels comfortable with the identified methods of speaking up.

Describe at least:

What hours will you be available to communicate?
Katrina - all day and weekend (except for personal appts/things)
Rachel - all day and weekend (except for personal appts/things)
Ella - all day except weekends (can still slack)
Michelle - all day and weekend (except for personal appts/things)

What platforms will you use to communicate (ie. Slack, phone …)? slack

How often will you take breaks?
every hour or as needed

What is your plan if you start to fall behind?
ask for help
re-evaluate MVP

How will you communicate after hours and on the weekend?
slack

What is your strategy for ensuring everyone’s voice is heard?
ask everyone's opinion

How will you ensure that you are creating a safe environment where everyone feels comfortable speaking up?
Being encouraging
acknowledging everyone's ideas
not assuming

Work Plan

Explain your work plan to track whether everyone is contributing equally to all parts of the project, and that each person is working on “meaty” problems. This should prevent “lone wolf” efforts and “siloed” efforts.

NOTE: While researching and experimentation is always encouraged, writing and/or committing code to the project on your own during non-working hours or over the weekend is never acceptable. This puts the entire project at risk. Be explicit in calling out your work hours and the distribution of tasks.

Describe at least:

use of pair programming and circling back with each other

How you will identify tasks, assign tasks, know when they are complete, and manage work in general?
during standups we will go through and ask who feels like they can work on certain tasks

What project management tool will be used?
Trello

Presentation Deck

Git Process

Plan out what your team’s Git workflow looks like for coding tasks. Describe at least:

What components of your project will live on GitHub?
repos, images

How will you share the repository with your teammates?
create org

What is your Git flow?
Main <-- Staging branch <-- work branches
• possibly use first name initial + branch name

Will you be using a PR review workflow? If so, consider:
Yes, 2 approvers

How many people must review a PR?
2 people

Who merges PRs?
1 of the non approvers

How often will you merge?
**merge to staging through out project, merge to main at MVP for project**
merge as a team
after completion of tasks completed
at end of day

How will you communicate that it’s time to merge?
During standups and when feature tasks are completed


Create your Pitch

Once your team had decided on 1 or 2 favorites, prepare your pitches for submission.

Alternatives:

  • Build a sundae
  • Mouse & cheese
  • Melting snowman

What lends itself to ASCII?: Each pitch should contain the following information:
Pitch #1(This is what was pitched during preliminary pitch meeting)

Hangman

Summary of idea.

  • The childhood game we all love is being re-imagined as a Python learning tool.
  • This will be a texting game. What problem or pain point does it solve? a. Keep it high level without going into too much detail. (3-4 sentences is enough)
    An entry-level tool to help beginner level Pythonistas learn Python.
    With every language there is new terminology and concepts to learn. This project will help the beginner Pythonista learn key terminology for mastering Python basics.

Minimum Viable Product (MVP) definition.

What is the minimum required for you to present on your demo day? The user should be able to start the game.
Program generates a random “hidden” word.
Tell the user if they got a correct letter or not.
Display the hangman if user did not guess the correct letter.
Prompt user to take another turn.
Display current status.
Prompt the user to play another game or quit.
Display the hidden word (STRETCH: and definition).
STRETCH: Play against a bot.
STRETCH: Pick categories
STRETCH: User can solve the puzzle at once

Persistence?:
keep track of what user got wrong. What will need to be saved?

  • Supabase
    Twilio: Python tools
    Core logic:

Software Requirements:

Vision:
To create a virtual learning tool modeled after the childhood game, Hangman. This learning tool can be used to help a beginner Pythonista learn Python terminology and concepts via their mobile phone.

Pain point does this project solve:
This tool will solve the problem of learning Python while on-the-go and in a fun, and learning it in a fun, exciting way.

The why behind our product:
This tool gives Python beginners the opporturnity to learn from anywhere and not be tied down to a desktop or laptop computer. In addition, it let's people know learning Python can be fun and interactive.

Scope (In/Out):
IN - What will your product do
The tool will prompt the player for a letter to solve the puzzle.
It will let the user know if they guessed the correct or incorrect letter.
It will also prompt the user for another turn, get their status, or quit the game.
The tool will display whether the player or the bot won or loss.
This tool will give you the most prevalent Python terminology.

OUT - What will your product not do.
This tool will never be turned into an IOS or Android app.
It will never be a web app.
It will not teach you everything you need or want to know about Python.
It will not teach you to code in Python.

Minimum Viable Project:
The user should be able to start the game.
Program generates a random “hidden” word.
Tell the user if they got a correct letter or not.
Display the hangman if user did not guess the correct letter.
Prompt user to take another turn.
Display current status.
Prompt the user to play another game or quit.
Display the hidden word.

Stretch Goals:
Play against a bot.
Display definition of word.
Player can pick different categories to play from.
Player can solve the puzzle at once.

Functional Requirements:
Player can type in a letter to guess the word.
Player can take another turn.
Player can get their status in the game.
Player can quit the game, if desired.

Data Flow:
Player asks for a definition and receives the definition.
Player makes a guess for a letter and receives a response whether letter is in the word or not.
The player has an option to enter the whole word to solve, then receives a response if they guessed the word correctly.
If guessed correctly, player can choose if they want to guess another word or end the game.
Player asks for status
Terminal displays that the player won.
Terminal displays that the bot won.
Player is presented with the question to play again or quit.
Player enters the letter “q” to quit the game.
Bot displays a message that player is quitting.

Non-Functional Requirements (301 & 401 only):
Usability: Player needs to have text messaging access.
Player needs to accept any carrier charges for text messages.
Player does not need to know Python or language specific terminology to play.
There is no log-in required to play.

Security: No secuity issues as there's no player data being collected.
There is no player data needed to play.