Skip to content

doilyuser/pingpong

Repository files navigation

Ping P⚪ng

Team Members and Roles

Team Members: Jack, Louis, Olivia, Ryan, Shadae

Roles

Product Owner: Olivia

Scrum leader: Louis D

Vibes watcher: Jack

Git manager: Ryan

Fun master: Shadae

Code review: Olivia

Teamwork principles

Wellbeing (stress response)

name stress profile needs
Louis Too intense. Tries to “get inside the monitor”. Needs to step back and have a glass of water. Needs a reminder. Needs a walk.
Jack Gives up. Removes themselves from situation mentally. Needs eight hours of sleep. Needs to take a break, either walk/food/exercise.
Shadae Anxious body language indicates stress levels. Suggest a break, needs a reminder to drink water too.
Ryan When things go wrong, can get down. Happened last multi day project, came in mopy, wanted to fade into background. Please don’t check in on them. Too many people checking can compound problem. “Let it be, be normal”. Appreciates sentiment, but makes them feel guilty. Has to act like everything is fine.
Olivia Say that she’s confused, if not reciprocated will cry. Gets flustered, self-isolate. Helpful thing is to tell her that it is happening, ask for a chat. Reassess the situation, tell her “its not the end of the world”. Gets really stress motivated but recognizes that it’s not always helpful. Regular stand ups can help. Needs clear direction, clear planning.

Survival for all

  • Need at least an hour for lunch
  • Smaller breaks, have them often!
  • Prioritise exercise.

Expectations

name wants obligations
Louis React Native. Git flow readme. Saturday TradeMe
Jack Agree with all, but have fun too! 90 min gym, more than willing to skip for the greater good.
Shadae Keep a small scope/mvp. Mvp Friday goal. Be patient with her when don’t get things right away. Thursday physio 1pm
Ryan wants to put in a lot of work. Wants something that looks good for employer. Wants it bug free over having every feature. Prefers coding solo but wants a good product over feeling comfortable. Don’t burn out please. Work 12 hours if you want to, but don’t stress out! Please don’t check in on them. Too many people checking can compound problem. “Let it be, be normal”. Appreciates sentiment, but makes them feel guilty. Has to act like everything is fine.
Olivia KEBABS. Wants clean function app, wants it to look good. Wants lots of testing. Steiner kids didn’t get tests, so she wants to do heaps now. Wants a mixture of solo and pair programming. Wants good coding practices: Testing, naming conventions, npm run lint. Yoga + therapy at times

Hours for all

  • 9-5, Weekdays
  • Sunday 12pm - 5pm.
  • Late night Tuesday
  • Vibe check Monday about late night

Decisions (conflict)

What will we do when conflict arises. How will we communicate?

  • System of escalation.

    • bring it to individual
    • bring it to peer
    • bring it to relevant roles
    • bring it to group
    • bring it to facilitator
  • Raise issues early.

  • Have courageous conversations. Be comfortable having them!

  • Practice empathy. Approach conflict with a positive attitude. Assume good intintions. Assume everyone is trying their best.

  • Human skills check-in Friday 3pm. With Patch or Joseph. No tech allowed!

Help!

How to ask for help?

  • Ask for help after 10 mins max!
  • Ask group members as first port of call. (It is a request not a demand, you can say no.)
  • Superspeed stand ups? Urgent, individual problem.

Inclusion

  • "Speak now or forever hold your peace." After stand ups and meetings, ask the question: “Any other thoughts” before disbanding.
  • Make sure that everyone is heard.
  • Actively try and include people.
  • Check our bias when building this app.
    • acknowledge/check privilege
    • UI accesibility

Meetings

  • Thumbs voting > how do we all feel?
  • Before stand ups establish what will be talked about.
  • Stand ups are scheduled for 9am (after check in) and 2pm (sharp). Can be done spontaneously also.
  • Relevant people @ meetings
    • Hand up, veto/put a pin in it (irrelevent)
    • Intention to split into back and front end teams. Will flesh out when we get into more tech.
    • Can veto self when you don’t feel like you’re relevant to meetings (So long as it doesn't leave other's aimless/alone)

Agile

Retros 4:15pm:

  • Good, bad, changes for tomorrow
  • Assess roles
  • Broad goals for tomorrow
  • Revisit next morning, discuss said ideas

Decision making

  • Use the escalation plan. Get everyone behind one concept at the start. Don’t disengage over ignored conflict. For trivial issues, ask the product owner. After concept, refer to product owner. When making decisions, consider the repercussions on the rest of the group . Have regular stand up on that are on topic, vote with thumbs Use the groupchat, use emojis! (avoid irrelevant stand ups)

Practical teamwork

  • Front-end/back-end split --> 6 frontend, 4 backend?

Personal learning objectives (focus areas)

Group objective: Gain experience across the stack and working in a larger team.

Louis:

  • things n stuff

Final Project

App description goes here

The Tech

We will be using a blank repo, here are some helpful readings:

The mobile responsiveness is built in as we are using React Native.

User Stories

I want to spontaneously celebrate with friends.

MVP

As a user I want to:

  • Open app and sign up, log in or see ping screen
  • click a button that sends a ping to my friend list as a push notification
  • Open to that specific pong screen when I click a push notification
  • be able to pong back
  • be able to send/recieve friend requests
  • see a confirmation page when a pingpong has occured
  • be able to add friends by unique username

Stretch

  • TBD

Git Flow

developement & main branches require code reviews for pull requests

Merge Procedure:

  1. Add, commit and push to a feature branch
  2. Ensure that the app builds and major features are functional - npm run test
  3. Use npm run lint to check for issues
  4. Navigate to the repo on GitHub and make a pull request to developement (after MVP achieved, main)
  5. Ask another member of the team to review your code in-person or on Slack
  6. Another member of the team reviews the code for issues such as obvious bugs, breaches of convention, or misalignment in vision
  7. If the code is good, the pull request is approved and the reviewer deletes the branch Use physical mobile devices - no emulators Mark the task as complete in Trello and choose your next task, marking it as in-progress

MVP Views (Client Side)

name purpose
Login Welcome unregistered users and encourage them to login / sign up
Ping Home, ping page, send pings
Error Pang! No friends in area, add friends?
Friend List Friend requests, active pings list, innactive users displayed

Stretch 1 Views (Client Side)

name purpose
Pong Name of pinger, Location of pinger
PingPong! Confirmation screen, displays location and encouraging message to get going

Reducers (Client Side)

name purpose
TBD TBD

Actions

component name

type data purpose
TBD_TBD TBD TBD

API (Client - Server)

Clientside APIs mirror the serverside minus the Google API routes

DB (Server Side)

Method Endpoint Usage Response
Post https://pingpong-backend.devacademy.nz/api/v1/userwithfriends User object A user object with a friend_data array of user objects, adding the user to the database if it doesn't exist
Post https://pingpong-backend.devacademy.nz/api/v1/getuser userId: auth_id A user object
Post https://pingpong-backend.devacademy.nz/api/v1/add UserData object A user object
Post https://pingpong-backend.devacademy.nz/api/v1/addfriend userId: auth_id, searchName: username Id of new entry in the friendships table
Post https://pingpong-backend.devacademy.nz/api/v1/confirm userId: auth_id, friendId: auth_id 1 if pending was set to false for the friendship
Post https://pingpong-backend.devacademy.nz/api/v1/deny userId: auth_id, friendId: auth_id 1 if the friendships entry was deleted
Post https://pingpong-backend.devacademy.nz/api/v1/setping userId: auth_id, setting: boolean, location: optional location string for when setting is true A user object
Post https://pingpong-backend.devacademy.nz/api/v1/searchuser userId: auth_id, searchName: username search string The id of the entry inserted into the friendships table if the username matches an entry in the user table
Get https://pingpong-backend.devacademy.nz/google/place/autocomplete/json? input: search string Locations from Google Places
Get https://pingpong-backend.devacademy.nz/google/place/details/json? placeid: place id Place details

Tables

users

Column Name Data Type
id increments
auth_id string
name string
| surname | string |

| username | string | | birthday | string | | ping_active | boolean | | ping_location | string OR null |

friendships

Column Name Data Type
id increments
user_one_id string
user_two_id string
pending boolean

Authentication

Auth stuff goes here

Setup

Download Expo Go and run the following commands in your terminal:

npm install
npm npx expo start

Scan the provided QR code

To run before merging:

npm run lint
npm run format
npm run test
npm npx depcheck

Deploying!

TBD

About

Kill your groupchat! A modern pager App for adults.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors