Mr Tom Smoker, Mr Haolin Wu
Where: CSSE rm 2.14
Time: Wednesday 12-2pm
No appointment needed.
Can I use jQuery, React, Bootstrap, or Angular for UIs in Project Part 1
JQuery, AJAX and bootstrap are ok, but Angular, VUE.js, React etc are not.
Can I use advanced CSS3 that are not necessarily supported by certain browsers
Yes in this case, but you will need to clearly state the browsers that supported and ensure that your page is still functioning on the browsers installed on the CSSE/EECE lab machines. So the bottom line is, if the pages work on the browsers in the labs, then it would be considered as acceptable.
What Flask modules can I use
Typically the flask modules mentioned in lectures will be ok. Otherwise, post a question to the help forum. The basic ones to use are:
Can I do cross-unit registration
The answer is No in general. If there are special circumstances, please email Tim for permission.
- [14 Feb 2020] This unit currently has 190 CITS3403 students and 40 CITS5505 students enrolled. Almost twice as many as last year!
- [14 Feb 2020] Labs, lectures and workshops all start in week 1.
- [24 Feb 2020] Update: Labs will be starting in week 2.
- [24 Feb 2020] Welcome to the first day of semester. The first class will be the lecture on Wednesday at 2.
Criteria: Backend functionality (50%)
Due 6pm, April 20, 2020
This project is worth 20% of your final grade and must be done individually. It is now for all students, both CITS5505 and CITS3403, as a midsemester test is no longer viable.
The project description, instructions and marking scheme is available here.
Web Project Specification: Online Quiz Platform
Due 6pm, May 25, 2020
This project is worth 30% of your final grade in the unit must be done in groups of two to four for CITS3403 students.
For CITS5505 students, it should be done in pairs.
Marking Criterion now available
For this project you are required to build a multi-user quiz/questionaire/survey application. The application should be written using HTML, CSS, Flask, AJAX, JQuery, and Bootstrap.
The application should allow administrators to set question sets, users to submit answers to the questions, and manual or automatic assessment of those answers.
The context of the questions and the type of assessment mechanism is up to you.
Example contexts you could use are:
- Educational assessment, like w3schools.
- Population surveys, for example to find politcal views or voting intention. (Assessment here could be showing someone where their views sit in the general population).
- Research questionaires, where personal history or otehr data could be provided.
- Competitive or esteem based tests, like general knowledge quizes or IQ tests
The types of assessment mechanism you could use are
- Multi-choice scoring
- Short text answers with fuzzy matching
- Manual assessment of long text answers
- Others (logical criterion, community voting, or compiling and executing submitted code)
Think carefully about the design of the application.
It should be:
- Useful, in that it answers an interesting question in a meaningful way
- Reliable, so that it is not frustrating to use
- Intuitive, so that it is easy for a user to complete the assessment and recieve feedback
- Engaging, so that it looks good and presents sufficient context for the questions being asked.
The web application should be styled to be interesting and engaging for a user in the selected context. It should offer several views including:
- An adminstrator view, that can add delete question sets, assess responses, and add and delete users.
- A user view that can view questionsets, submit answers, and see the results of completed question sets.
- A general view that can just view aggregate results for quizzes.
In addition to the web application, you should create a private GitHub project that includes a readme describing
- the purpose of the web application, explaining both the context and the assessment mechanism used.
- the architecture of the web application
- describe how to launch the web application.
- describe some unit tests for the web application, and how to run them.
- Include commit logs, showing contributions and review from both contributing students
Group Registration is now available
Getting Started: Select Website Purpose and Style
Find a partner(s) with (ideally with common interests) and come up with a theme for your application.
Discuss styling, how the application is likely to be used, and precisely what functaionality it should offer.
Criteria: Front-end (50%)
- The user should be able to enter all necessary data required by the application (although this need not be stored). This data should be sufficient to run the algorithm, and validatedon the client side.
- The website must use HTML5, and CSS. The HTML and CSS must pass this validator.
- The website must work on chrome, firefox and internet explorer
- The website should have at least six pages/sections:
one promoting the theme (and explaining how the quiz works) to users;
one displaying available question sets to users;
one allowing answers to be submitted from users;
one displaying results of assessments to users;
one allowing admins to add remove question sets/users; and
one allow admins to assess responses.
- There must be a consistent style (via css file) for all pages yet each page should be easily identifiable.
There should be a navigation element, and a footer element displaying author information.
- HTML5 - style, maintainability, validation 10%
- CSS -style, maintainability 10%
- Style - look and feel, usability 10%
- Content - coherence, effectiveness 5%
The second part of the project criteria is the back end functionality of web application.
The web application should be implmented using Flask (any additional libraries/modules require unit coordinator approval), and provide at least the following functionality:
- A user account and login feature, (as a minimum for administrators)
- The ability to propose new question sets and add users.
- A method to submit answers.
- A method to assess submissions.
- A method to see assessments.
There is a possibility for a wide variation in the degree of ambition and complexity in the project,
and this will be reflected in the marking criteria.
For example, a quiz that assessors basic arithmetic skills using multi-choice questions and automatic grading
would probably achieve a maximum score of 75%, whilst an application that allows manual assessment and
provides feedback to users could achieve a lot more.
The back functionality will be assessed via the following deliverables:
The application should include an HTML5 website with the following pages (or functions):
- A complete Flask application providing the functionality of the project. This should be submitted as a zip including
- a full readme.md, describing the design and development of the application, and giving instructions on how to launch from local host.
- the git log, showing commits from both partners
- all source code, with comments and attributions for any external libraries.
- a requirements.txt file, listing all packages used. To build the requirements.txt file for your virtual environment, use the command:
pip freeze > requirements.txt while your virtual environment is active.
- An adminstrator view, that can add and delete question sets, assess responses, and add and delete users.
- A user view that can view question sets, and submit answers and see assessments/feedback.
- Codecode quality, complexity of task, execution 10%
- Persistence and User authentication Database schema and models10%
- Testing Unit tests and Selenium Tests10%
- Design Purpose and level of complexity10%
- Collaboration Git logs and agile processes 10%
The Marking Criterion is now available.
In week 12 all members of each team must present and demonstrate their project.
A schedule will be set up for demonstrations by week 8. All team members must demonstrate their code via Zoom, and meeting invitations will be arranged.
Submit the zip including:
- All source code for a flask application
- a full readme.md, describing the design and development of the application, and giving instructions to launch the applictaion (running on localhost), and dependencies (i.e. required modules)
- the requirements.txt file, containing all modules used by your project
- the git log, showing commits from both partners
- a small database file (eg app.db) to demonstrate the projects functionality
Do not include all libraries (i.e. the virtual environment folder), or the full git repository as they are large and unnecessary.