├── LICENSE ├── README.md └── user-stories.md /LICENSE: -------------------------------------------------------------------------------- 1 | ## License Terms 2 | 3 | By implementing the app described above and posting it publicly on GitHub, you agree to the following license terms: 4 | 5 | **"You"** or **"Your"** means the rights holder. **"Contributions"** means any software, images, audio, or other creative work produced by you during the course of working on this project. **Recipients** means anyone who recieves the software by any means, in any medium, or through any distribution channel. 6 | 7 | * **You Own Your Creative Work.** You reserve all right, title, and interest in and to Your Contributions. You may use your solo projects in your portfolio. 8 | * **Grant of Copyright License.** Subject to the terms and conditions of this Agreement, You hereby grant to Recipients of this software a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works. 9 | * **Grant of Patent License.** Subject to the terms and conditions of this Agreement, you hereby grant to recipients of this software patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work. 10 | 11 | You represent that you are legally entitled to grant the above license. 12 | 13 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Checkin 2 | 3 | Remote-friendly scrum checkins without the annoying meetings. 4 | 5 | A portfolio project for professional developers to highlight skills with modern tech stacks like React, Redux, Serverless, etc. [EricElliottJS.com](https://ericelliottjs.com). 6 | 7 | ## Instructions 8 | 9 | Fork this repository and implement your own Checkin app. To get credit on EricElliottJS.com or DevAnywhere: 10 | 11 | * [ ] [Deploy on Vercel](https://vercel.com/). 12 | * [ ] Open an issue and include links to the deployed app and your forked repo. 13 | * [ ] [Ping us on Twitter](https://twitter.com/intent/tweet?text=I%20just%20completed%20the%20Checkin%20app%20on%20EricElliottJS.com%20%40JS_Cheerleader%20%23JavaScript%20%23code) (fastest response) 14 | 15 | 16 | ## Tech Stack Checklist 17 | 18 | * [ ] [Use Next.JS](https://nextjs.org/) 19 | * [ ] [Setup automatic lint and prettier runs](https://medium.com/javascript-scene/streamline-code-reviews-with-eslint-prettier-6fb817a6b51d) 20 | * [ ] [Deploy on Vercel](https://vercel.com/) 21 | * [ ] [Authenticate users with Magic](https://magic.link/) 22 | * [ ] [Store data in Firebase](https://firebase.google.com/) 23 | * [ ] [Don't commit secrets to the repo](https://nextjs.org/docs/basic-features/environment-variables) 24 | 25 | Related: [The 12-Factor App](https://12factor.net/) 26 | 27 | 28 | ## What's a Scrum Checkin? 29 | 30 | In agile development, we strive to implement the minimum effective amount of process to enable [high velocity development](https://medium.com/javascript-scene/how-to-build-a-high-velocity-development-team-4b2360d34021). 31 | 32 | The scrum meeting is a common element of that minimal process. Its purpose is to allow team members to check in with each other. On each work day, each small team gathers to answer three questions: 33 | 34 | * [ ] What did you do on the last workday? 35 | * [ ] What are you doing today? 36 | * [ ] Is there anything blocking you? 37 | 38 | Scrum teams should be small, so these meetings should last less than 15 minutes. 39 | 40 | But what about distributed teams working in different timezones? And even a 15 minute meeting is still expensive. What if you could get even better visibility without the inefficiency of a meeting? 41 | 42 | That's where this app comes in. 43 | 44 | 45 | ## Basic Requirements 46 | 47 | Don't worry about anything but getting the user interfaces to work. No need for user authorization, databases, or API's for now. Feel free to make some fake users and fake checkin data. 48 | 49 | * [ ] Allow a user to create and name teams. Users own the teams they create. 50 | * [ ] Allow a user to check in with a specific team. 51 | * [ ] View the team status: A simple display of a running log of all the team's checkins, grouped by day. 52 | 53 | Here's a sketch of the checkin feature. 54 | 55 | ## Screen 1: Previous Day 56 | 57 | ``` 58 | 59 | Your last checkin said you would: 60 | 61 | * [ ] Write the README for the checkin app 62 | * [ ] Document the stack requirements 63 | * [ ] Complete 2 code reviews 64 | * + Add another item 65 | 66 | Were there any blockers? If so, please list briefly below (one line each): 67 | 68 | * + Add a blocker from your previous checkin 69 | 70 | Please check the items you completed, and add any additional items you completed. 71 | 72 | [ Done ] 73 | 74 | ``` 75 | 76 | ## Screen 2: Today 77 | 78 | Carry over unfinished items from the previous day. User should be able to delete tasks. 79 | 80 | ``` 81 | 82 | What will you work on today? Try to list 3-5 things you think you can **complete** today. 83 | 84 | * [ ] 85 | * [ ] 86 | * [ ] 87 | * + Add another task you can probably complete today 88 | 89 | ``` 90 | 91 | Blockers: 92 | 93 | Carry over any previous blockers that are not checked off. 94 | 95 | ``` 96 | Do important tasks have any blockers? If so, please list them briefly, below: 97 | 98 | * + Add a blocker for today's tasks 99 | ``` 100 | 101 | ## Screen 3: 102 | 103 | ``` 104 | 105 | 1 - 5 words, what are we doing well? (optional) 106 | 107 | [ ] 108 | 109 | 110 | In 1 - 5 words, what needs improvement? (optional) 111 | 112 | [ ] 113 | 114 | Great! How are you feeling today? 115 | 116 | 🙁 😐 😃 117 | 118 | [ Done ] 119 | 120 | ``` 121 | 122 | ## Screen 4: 123 | 124 | ``` 125 | 126 | That's it. Have a great day! 🎉 127 | 128 | ``` 129 | 130 | 131 | 132 | ### Mid Level Requirements 133 | 134 | * [ ] Allow a user to join an existing team. 135 | * [ ] Store data on a remote server and let other users sign up. 136 | * [ ] Implement the [user stories](user-stories.md). 137 | 138 | 139 | ### Advanced Requirements 140 | 141 | * [ ] Integrate with Slack and post reports. 142 | * [ ] Integrate with Github. On the "What will you work on today?" feature, provide an option to link a GitHub issue from their assigned issues. 143 | * [ ] Automate checkin updates to mark items as done when linked issues get closed on GitHub. 144 | * [ ] Add realtime capability and update today's checkins view as checkins are added, statuses change, and checklist items get marked complete. 145 | 146 | 147 | ## License Terms 148 | 149 | By implementing the app described above and posting it publicly on GitHub, you agree to the following license terms: 150 | 151 | **"You"** or **"Your"** means the rights holder. **"Contributions"** means any software, images, audio, or other creative work produced by you during the course of working on this project. **Recipients** means anyone who recieves the software by any means, in any medium, or through any distribution channel. 152 | 153 | * **You Own Your Creative Work.** You reserve all right, title, and interest in and to Your Contributions. You may use your solo projects in your portfolio. 154 | * **Grant of Copyright License.** Subject to the terms and conditions of this Agreement, You hereby grant to Recipients of this software a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works. 155 | * **Grant of Patent License.** Subject to the terms and conditions of this Agreement, you hereby grant to recipients of this software patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work. 156 | 157 | You represent that you are legally entitled to grant the above license. 158 | -------------------------------------------------------------------------------- /user-stories.md: -------------------------------------------------------------------------------- 1 | # User Stories 2 | 3 | Stories for each role. 4 | 5 | ## Team Members 6 | 7 | * [ ] As a team member, I want to see today's team checkins, so that I can see what everyone on the team is working on. 8 | * [ ] As a team member, I want to add my checkin to today's checkins, so that my teammates can see what I'm working on. 9 | * [ ] As a team member, I want to delete my checkin, so that I can instantly undo the shame of a ridiculous mistake. 10 | * [ ] As a team member, I want to update my checkin, so that I can fix a minor typo. 11 | * [ ] As a team member, I want to view checkins for any specific date in the past, so I can see what everyone on the team was working on at the time. 12 | * [ ] As a team member, I want to remove myself from a team, so that I'll no longer appear in the current team member list. (Previous checkins will remain unchanged). 13 | 14 | ## Team Owners 15 | 16 | * [ ] As a team owner, I want to invite a new team member to join my team, so that we can coordinate team work. 17 | * [ ] As a team owner, I want to remove a team member, so that they no longer appear in the current team member list. (Previous checkins will remain unchanged). 18 | 19 | 20 | ## Signed-in users 21 | 22 | * [ ] As a signed-in user, I want to create a new team so that I can keep track of what team members are working on. 23 | * [ ] As a user, I want to join a team I've been invited to, so that I can stay in sync with team work. 24 | 25 | --------------------------------------------------------------------------------