Web Application: finishing it up
Goals
- Finish a cool web application
- Feel proud of it
- Think one more time about code quality, usability, and the needs of the people using your software
- Learn a bunch more random stuff
Your tasks
- Complete your project and test it thoroughly.
- Update your
/api/helproute to give me updated API documentation. Include a file
webapp/readme.txt, structured like so:AUTHORS: [your names] DATA: [a one-sentence description of your data] [copyright info, plus a description of how I could get your raw data myself, including relevant links] STATUS: [a concise description of what works, what's not working yet, and any other information that might help me test and evaluate your work] NOTES: [(Optional) anything else you'd like to add]This will overwrite your old readme.txt. That's good.
If your database structure or content has changed since the last due data, re-dump your database into
data/database.sql:pg_dump --no-owner --no-privileges --clean -U YOURUSERNAME YOURDATABASE > database.sqlThis will overwrite your previous
database.sqlfrom the end-to-end or webapp-draft assignments. That's just fine. If I ever wanted to run the earlier versions, I could do agit checkout commit-idoperation.- A FAVOR FOR ME: as soon as you push your completed project, please send me a Slack DM letting me know. I'd love to start grading as early as possible, and would be grateful for your help. Thanks.
How I will test and grade the final product
I will do all this directly on my laptop, since I have postgres installed. You could mimic this testing procedure on stearns by adjusting the URLs mentioned below.
- cd YOUR-REPO/webapp
- git pull
- Read readme.txt
- psql -U jondich grading < ../data/database.sql
- Create (or edit, if you have one in your repo, which you shouldn't)
config.pyto correspond to my user name, database name, and password - python3 app.py 127.0.0.1 9999
- Go to http://127.0.0.1:9999/api/help to see your endpoint documentation
- Go to http://127.0.0.1:9999/ to see your home page
- Test everything in a browser, taking notes on usability and correctness
- Read through your
app.py,api.py,*.js,*.html, and*.cssfiles, your database design, and your api design, taking notes on code organization and quality - Write down my main observations, and assign a grade based on this rubric:
Score - (Weight) Category ======================== V/4 - (2) Correctness W/4 - (1) Feature Scope X/4 - (2) User Experience Y/4 - (4) Code Construction Z/4 - (1) Documentation score (40 possible) = V*2 + W*1 + X*2 + Y*4 + Z*1
Keep in mind a few things about this evaluation plan.
- The rubric is weighted to reflect the emphasis of this course as a whole: high quality code and the needs of the user are the focus, without ignoring the fact that functioning code ("correctness") is essential, too.
- I've included a lightly-weighted "Feature Scope" to give myself a way to reward ambitious work, without making fancy features a dominant part of the rubric. The idea here is that a very simple project with excellent code and excellent usability should be able to earn an A, but that extra awesomeness also deserves a small boost in score.
- Note that it is very important that your project run properly with just
python3 app.py HOST PORT. You can test this by cloning a fresh copy of your own repository on stearns and following the steps listed above. - Follow the specs carefully. For example, if I tell you to create a readme.txt file, for example, don't call it README or README.txt or readme.md or readme.docx.
- Don't forget Mr. Krug's wisdom: don't make me think!
- Think positively, and have fun! When I see a fun and interesting web application, it's a real pleasure for me, and that is part of the subjective category of "user experience". I have loved working with all of you, and seeing the cool stuff you're creating is one of the great benefits of my job.
Thanks for a great term, and have fun!