|
|
## Deadline: Fri 13th April 16:00
|
|
|
|
|
|
this is an _extension_ from the originally advertised date.
|
|
|
|
|
|
## app & repo assessment
|
|
|
|
|
|
* This submission is worth 50% of the term 2 coursework mark i.e. 5% overall.
|
|
|
* You will be assessed on your activity in the repo during the term, and on the submission of a final app.
|
|
|
* In terms of the repo, we will look at the history of commits and evidence of sustained activity.
|
|
|
* In terms of the app, your submission should reflect the features covered during the term. You should include a clear statement in the README submitted with the app that describes what you have done.
|
|
|
|
|
|
## repo
|
|
|
|
|
|
The assessment will take into account the commit history of your repo as an indicator of your engagement with the lab work. The assessors will consider both the frequency of commits, the commit messages, and a sample of the actual commits.
|
|
|
|
|
|
This doesn't mean you have to have committed every week, and there is no specific requirement on what you have committed. The assessors will simply be looking for evidence of engagement i.e. you did some work on the lab exercises. Note that simply committing the course repo code to your own repo does not in itself indicate effort or engagement.
|
|
|
|
|
|
## app
|
|
|
|
|
|
The app can be an extension of the mytwits script we have worked on in the labs, or your own app.
|
|
|
|
|
|
Suggested extensions to mytwits include (but are not limited to)
|
|
|
|
|
|
* user registration
|
|
|
* user avatars
|
|
|
* following other users
|
|
|
* replies / comments
|
|
|
* an extended api
|
|
|
|
|
|
If you develop your own app it doesn't have to be complex, but it does have to demonstrate clear differences to the code I have provided in the lab repos. So you need your own model (backend data structure), your own operations on that model, and the ability to access those operations through the web and (to some extent) through an api. This sounds abstract but basically means thinking about what kind of app you'd like to create.
|
|
|
|
|
|
## detailed critera for your app
|
|
|
|
|
|
* it is a flask app
|
|
|
* there is more than one route and more than one view
|
|
|
* the html is rendered using jinja templates
|
|
|
* the jinja templates include some control structure(S) e.g. if/else, for/endfor
|
|
|
* it includes one or more forms
|
|
|
* the forms have some validation
|
|
|
* there are useful feedback messages to the user
|
|
|
* using wtforms is not required but is recommended
|
|
|
* it has a database backend that implements CRUD operations
|
|
|
* the database can be mysql or mongodb
|
|
|
* the create & update operations take input data from a form or forms
|
|
|
* using sqlalchemy is not required but will attract credit
|
|
|
* there is user authentication (i.e. logins)
|
|
|
* the login process uses sessions
|
|
|
* passwords should be stored as hashes
|
|
|
* using a salt is not required but is recommended
|
|
|
* there is a way to logout
|
|
|
* use of flask-login is not required but is recommended
|
|
|
* there is a basic api i.e. content can be accessed as json via http methods
|
|
|
* it should be clear how to access the api (this could include comments in code)
|
|
|
* additional credit will be given for an api that implements get,post,push and delete
|
|
|
* use of flask-restful is not required but is recommended |
|
|
\ No newline at end of file |