Comp249 assignment: flowtow web application
COMP249 Assignment: FlowTow Web Application
The major programming assignment for COMP249 this year is to build a web application that supports posting digital images and commenting on them. There are many such sites around the web including Imgur and Instagram but ours is going to be different, ours is going to take the world by storm and make us rich beyond our wildest dreams. It will be called FlowTow and we're going to build it ourselves!
To give you an idea of what the application does, there is a demonstration version at http://comp249.stevecassidy.net/. In the first instance, this demo implements the requirements for the first two levels of the requirements. It will be upgraded in a week or so to meet the level 4 requirements.
Level 1
To start the project you will just concentrate on getting a basic web application working that generates a fixed set of pages and makes use of a stylesheet.
Level 2
Level 3
If you complete this level you will get at least a PASS grade for the assignment (50%).
Level 4
This phase adds image file upload to the application. This is the last level where we provide the full requirements and tests.
Level 5
Starter Kit
You can download the starter pack here: flowtow-starter-kit.zip
The contents of the starter pack are as follows:
level1_functional.py - functional tests for Level 1
level2_functional.py - functional tests for Level 2
static - directory containing sample images and a copy of these pages
To get started with this project, unpack the zip file into your working directory and open the directory in PyCharm.
Submission
You will submit this work in two parts: after you have completed Level 2, and after you have completed Level 3 or above. The Level 2 submission is intended to check on your progress with the assignment so that we can provide you with feedback and identify anyone who needs support. See iLearn for the dates of these submissions.
For each submission you should submit a zip file with the same structure as the starter pack. We will expect to run main.py to see your application. Include any support files that you need for your application to work. A good idea would be to unpack your zip file at a new location and try to run it yourself.
Grading and Passing the Assignment
Level | Functional Tests | Unit Tests | Cumulative Marks |
---|---|---|---|
1 | 2 | 0 | 2 |
2 | 1 | 3 | 6 |
3 (Pass) | 2 | 2 | 10 |
4 | 1 | 1 | 12 |
Features
The extra features that you have implemented in the project. For a Credit you don't need to add any extra features, for D/HD you will have added at least one new feature that is well integrated into the application and is well thought out.
Your final grade will be calculated based on your performance against the above criteria. It is not necessary to get a distinction against all criteria to get full marks for the assignment.
Level 1
As a visitor to the site, when I load the home page I see the title text "Welcome to FlowTow".
Three Images
The button is part of a form that submits a like request. The action of the form should be /like, the form should have a hidden field called filename containing the filename of the image being liked and the button should be the submit button in the from.
Link to About Page
As a visitor to the site, I notice that all the pages on the site have the same design with the same colours and fonts used throughout.
Each page will have a similar structure and will link to a common CSS stylesheet.
The techniques to do this are covered here: