COSC2675 Rapid Application Development
Computer Science and Information Technology School of Science, RMIT
Assignment (STAGE 1) Semester 1 2019
Introduction
This assignment is worth 30% towards your final grade. You are required to develop a web
application specified below. It is designed to:
Practise your knowledge of Rails development
Practise testing and debugging
This is a group assignment. A group should not have more than 2 members. Individual
submission does not receive any extra marks.
Note, this specification is incomplete. It is to simulate real world scenarios as clients often do not know exactly what they want. Your prototype would inspire them so they will come up with more ideas.
In stage 2, more specifications will be provided with assessment details. Your stage-1 prototype is basic but functional.
You are required to demo your prototype individually in week 8.
Academic Integrity
The assignment must be your own work although no submission is required in this part.
No marks will be awarded for any parts, which are not created by you. More on http://www.rmit.edu.au/academicintegrity.
Plagiarism is treated very seriously at RMIT. Plagiarism includes copying code directly from other students, internet or other resources without proper reference. Sometimes, students study and work on assignments together and submit similar files which may be regarded as plagiarism. Please note that you should always create your own assignment even if you have very similar ideas.
Plagiarism-detection tools may be used for all submissions. Penalties will be applied in cases of plagiarism.
Client Request
This assignment is developed based on the following fictitious message from the school admin team.
Dear Andy
Our school is thinking of building a course management website to help staff organize existing courses and propose new courses. RAD students may be able to help as everyone is saying they know how to quickly build a good online application from scratch.
We don’t have anything formal yet. Our admin team of course want a site, which is easy to use and has good look-n- feel. People with a proper RMIT email address should be able to register to be a user. Do you think we should only allow registered users to create, update and remove course content? Viewing the courses should not be a problem. Mmm… it would be nice that every course has a picture. Is that possible to thumb-up thumb-down a course?
Can your team put something together first, so I can show to my team for feedback and discussion? Thank you and talk soon.
Based on the above email, your task is to build a quick prototype. The following screenshots are indicative. You can make necessary adjustment to improve the design. Your application can have different look-n-feel, but should maintain at least the same quality, e.g. using Bootstrap.
Part 1 Guest Page
The homepage of your application may look like this sample page. It should have a “Home” button to always bring your application to this page. It should have a signup button to allow new users to register. Existing users should be able to login through this page as well.
This page should have a footer similar to above example. It should allow guests sending a simple message to the webmaster. It shows some static links such as contact details, useful links and social media. Social media links show icons when mouse hovers over them (as shown below)
The homepage should have three buttons in the header, Category, Location and Login. The first two buttons support dropdown menu. They all change appearances when a mouse over occurs.
Guests can view all courses by click the “Browse all courses” button. Each course should show its name, prerequisite, category, location and how long ago it was created.
Each course may have multiple categories e.g. “Web Development” and “Full Stack Dev”. One course may also have multiple locations.
Guests can view the number of thumb ups and downs. However they can NOT vote. Each coordinator has a Gravatar profile.
The course view should support a coordinator tab to list all course coordinators.
When a certain category is selected, then only the courses under that category will be listed. The following example shows all courses under “Web Development”.
Similarly guests can select a location to list all courses running at that location.
The category and location information of a course should be clickable and can act like the category and location buttons shown above.
Part 2 Signup and Login/Logout
When a user clicks sign up, proper validation should be in place. See the error messages below. Only a RMIT staff, who has a
For an existing user, a temporary “login successful” message should be displayed. All the courses will also be displayed to these authorized users.
.
When logout, a temporary message is also displayed. The application returns to the guest mode.
The “Home” button for a logged-in user should always bring your application to the list of all courses, not to the homepage for guests.
There is no submission for Stage 1 Individual lab demo at Week 8
Additional Notes
1: Your application is expected to be production ready. Proper test and data validation should be embedded in your application.
2: Stage-2 specification will be available “once we received new instructions from our client”.
3: You are suggested to track the time you spend on this task.
4. Your code should be hosted on bitbucket. The code repository should be in sync with your development.
4: Only the following GEMS should be used in your application.
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
gem
‘rails’, #### ‘bootstrap-sass’, #### ‘puma’, #### ‘sass-rails’, ‘uglifier’, ‘coffee-rails’, ‘jquery-rails’, ‘turbolinks’, ‘jbuilder’, ‘carrierwave’, “mini_magick” “font-awesome-rails” ‘bcrypt’,