HW4: Project functionality & milestones
CS 359B Spring 2018
Deadlines:
Wireframes: Wednesday - April 25, 2018 11:00 am
Milestones: Friday - April 27, 2018, 11am
Your goal is to have the first working version of your project ready for the Midterm presentation. Is this possible? Yes, see FAQ.
But first, congratulations on the excellent work in the first 3 weeks of classes. By now, everyone should have a clear understanding of (i) what a dapp is, (ii) what benefits the blockchain can bring to apps, (iii) how to interact with dapps using MetaMask, (iv) main limitations of dapps, and (iv) how to build a simple hello-world wallet dapp. If you feel you don’t grasp any of the above concepts, come talk to us in office hours or slack.
Below are the high-level goals and deliverables for the next 3 weeks.
Goals | Deliverables | |
Week 4/23 - 4/29 | Finalize idea and functionality. Start coding your dapp. | 1. Present wireframes in class. 2. Submit milestones in writing. 3. Push initial code on Github. |
Week 4/30 - 5/6 | Develop v0 of your dapp. It is ok if it is a collection of working functions that can not be used by a user yet. | 1. Incomplete code on github. 2. A description of what the code can do, and what it can’t do yet. 3. A milestone update. |
Week 5/7 - 5/13 | Develop v1 of your dapp. It can have limited functionality, but it should have at least one complete feature usable by an end user through MetaMask (or equivalent). | 1. A working v1 dapp on github. 2. A usable dapp deployed on a test net and a web server. 3. A description of what the dapp can already do, a milestone update. |
Monday 5/14 | Midterm demos (people will try your dapps themselves from their computers for a few mins) | Present your v1 working dapp in class, as your midterm. Classmates and mentors try it out. Submit next milestones in writing. |
Every Monday at 11 am there will be a short HW due, as a report of the previous week. (We will have a character limit so that you don’t waste too much time on write-ups). Each HW will include a snapshot of your code (github takes care of that), screenshots of the current state of your dapp, completed milestones, missed milestones, and an updated list of upcoming milestones.
Below are the deliverable for HW4.
Due: Wednesday - April 25, 11am
Deliverables: Thumbs-ups to useful comments you received by classmates and mentors
Go back to step 12 of dapps.stanford.edu/proposals/review and read the feedback you received. You will notice that by now you have also received feedback from class’ mentors. Read the feedback and try to incorporate it to improve your idea. It is OK if your idea changes significantly based on feedback. That is the whole point of receiving feedback.
Your goal in this step is to come up with the functionality and flow of your dapp.
Give a thumbs up to good, thoughtful pieces of feedback you received from mentors and peers.
We will take into consideration your thumbs-ups to mentor feedback when pairing you with mentors. So we will try to match you with mentors who gave you feedback you appreciated.
Due: Wednesday - April 25, 11am
Deliverables: (i) A Google slides presentation,
(ii) A class presentation on Wednesday.
Put together Google slides with wireframes of the interactions and workflow of your proposed dapp. These will be used to help others understand what your dapp is going to be and how it is going to be used. We will ask you to submit them to dapps.stanford.edu, in a similar way you submitted your presentations to HW2.
During your presentation show visually an entire workflow of the interaction of a user with your app. For example, imagine Alice is using your app. Who is Alice in this case? (e.g. a person who wants to play a game, an employer who needs to validate if a job applicant is indeed a Stanford graduate). What does Alice see on her screen first? (Landing page) Then, where does she click next, and why? (What’s her goal) What happens after that? (Show the next screen she sees) What happens next? And so on and so forth, until you explain the whole app workflow.
This time you will be presenting from OUR computer at the front so that you can point and click to your slides/wireframes yourself. We will ask you to walk to the front of the room, when your turn comes.
Your wireframes do not need to look nice, but they need to have enough information for the audience to follow along. You can even take pictures of your whiteboard or paper sketches. You can also use simple boxes directly on Google slides. You can use wireframing tools like Balsamiq and Mockflow.
See below for some good examples of wireframes.
This is great (paste a photo of your paper sketches in the slides): | This is great (paste a photo of your whiteboard sketches in the slides): |
This is great (and can be made directly in Google slides): | This is NOT necessary (too high fidelity), but it’s also great. |
Also consider including a user experience workflow diagram to be read by us offline, if it improves clarity. I.e., a diagram that shows how the user transitions from page to page in your app. This is optional. So do it only if the flow is not clear from your wireframes.
Similar to HW2:
Due: Friday - April 27, 11am
Deliverables: (i) A write up of project architecture and milestones until Midterm.
This is what we called “mini white paper” in HW2, which we decided to reduce in scope and pushed its deadline until after you have built a working CardinalToken dapp, experimented with MetaMask, and finalized your idea and its functionality based on the feedback you received.
Take into consideration feedback received in class on your wireframes. Give thumbs up to good feedback. Improve and finalize your idea. Decide your action plan and milestones for midterm.
First, give kudos (thumbs-up) to thoughtful, useful feedback you received on your presentations.
Then, submit the following write up. 2 pages max. It is important for you to think through and have solid answers to these questions. But, we want you to spend more time learning how to code dapps and less time on write-ups.
You can answer questions (3.a) and (3.b) in a format like this
(3.a) Milestones - The code will be able to perform the following functionalities: | (3.b) Who does what for this milestone? | |
By Monday 4/30: | ||
By Monday 5/7: | ||
By Monday 5/14: |
Submit write-up in this google drive folder. Make sure all your previous slide decks are also in the same folder. If not, add them.
Like in HW3, we will be using GitHub classroom for submitting code. See HW5 for instructions.
A: Yes. Chose the functionality wisely so that you can get it done. Work in a full stack mode and implement features all the way through, one at a time. Start with the simplest feature you can imagine and get it functional all the way. Then move to the next feature. For example in class we built features of the CardinalToken wallet in an hour. We first got it to display the balance of a Metamask user. We then got it to be able to send tokens to other accounts. Afterwards you were able to make it mint new tokens as part of your HW3. So, instead of implementing all sorts of frontend features (for example), and then moving to the backend, we finished each feature all the way, one at a time. In the end we had a dapp usable by end users within an hour, even though its functionality was very limited.