Team Members: Jack, Louis, Olivia, Ryan, Shadae
Product Owner: Olivia
Scrum leader: Louis D
Vibes watcher: Jack
Git manager: Ryan
Fun master: Shadae
Code review: Olivia
| 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. |
- Need at least an hour for lunch
- Smaller breaks, have them often!
- Prioritise exercise.
| 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 |
- 9-5, Weekdays
- Sunday 12pm - 5pm.
- Late night Tuesday
- Vibe check Monday about late night
-
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!
- 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.
- "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
- 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)
- Good, bad, changes for tomorrow
- Assess roles
- Broad goals for tomorrow
- Revisit next morning, discuss said ideas
- 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)
- Front-end/back-end split --> 6 frontend, 4 backend?
Group objective: Gain experience across the stack and working in a larger team.
Louis:
- things n stuff
App description goes here
We will be using a blank repo, here are some helpful readings:
The mobile responsiveness is built in as we are using React Native.
I want to spontaneously celebrate with friends.
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
- TBD
- Add, commit and push to a feature branch
- Ensure that the app builds and major features are functional - npm run test
- Use npm run lint to check for issues
- Navigate to the repo on GitHub and make a pull request to developement (after MVP achieved, main)
- Ask another member of the team to review your code in-person or on Slack
- Another member of the team reviews the code for issues such as obvious bugs, breaches of convention, or misalignment in vision
- 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
| 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 |
| name | purpose |
|---|---|
| Pong | Name of pinger, Location of pinger |
| PingPong! | Confirmation screen, displays location and encouraging message to get going |
| name | purpose |
|---|---|
| TBD | TBD |
| type | data | purpose |
|---|---|---|
| TBD_TBD | TBD | TBD |
Clientside APIs mirror the serverside minus the Google API routes
| 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 |
| 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 |
| Column Name | Data Type |
|---|---|
| id | increments |
| user_one_id | string |
| user_two_id | string |
| pending | boolean |
Auth stuff goes here
Download Expo Go and run the following commands in your terminal:
npm install
npm npx expo startScan the provided QR code
To run before merging:
npm run lint
npm run format
npm run test
npm npx depcheckTBD