COM2025 Web Applications Development
Project
1. Purpose
The purpose of this assignment is for you to demonstrate your ability to:
- Develop an interactive web
- Use Ruby on
This will involve you building a web app using Rails, which will include Ruby classes and a database that will produce HTML, CSS and jQuery that will be used as the user interface to your app via standard web browsers.
2. Problem Definition
Your first task is to select an application that you wish to develop. We are not constraining your choice so that you have an interest in what you are developing, and scope to make it your own.
To help with your selection we are expecting your application at a minimum to include the following elements:
- A home
- A contact page which provides a form for you to contact the site owners via
- Resource pages linked to at least three models which are contained in a database. You must show resource associations in your
Some example sites you might consider:
- Carpark space bookings: a system to allow you to book a parking space in The site could report the available spaces, location of cars and costs. We are not expecting any payment mechanism.
- Events management: a system to allow you to manage a series of events. Each event will have a number of tasks associated with it all linked to a calendar and deadlines.
- Moduleoption selections: a system which will allow students to select modules that they wish to take form a list of optional modules. The system must ensure that students can only take modules which add up to the required number of
- A football league system: a system used to track football teams in a league, record points and display the current league table and fixtures. Feel free to pick anysport if you do not like football.
- Music collection: a system to keep track of your music collection, includingalbum and track information, plus your own notes or favourites.
Feel free to pick your own idea, but make sure it has enough complexity to meet our requirements, while not being too ambitious in scope. If in doubt, please ask.
3. Requirements (marks)
We are expecting to see a fully working Rails application which includes: 1. Views (30%):
- A home
- A contact page with contact
- Resource pages for all of your appropriate model resources. Only provide routes and actions to all of your resource paths if they are
- All views conforming to best practice guidelines for HTML5 and CSS, for exampleas through boilerplate templates, with styles used to present content in a clear and appropriate
- Partials used to ensure that each page has a standardised header and
- jQueryused where appropriate to assist in providing a good user experience (for example, checking that form fields are not empty prior to submission, if they are required).
- Controllers(20%):
- A controller to handle your home and contact
- Controllers for each of your model resources with an appropriate use of strong
- Only actions for those routes which are
- Appropriate tests for each of your controller actions, which all pass. You should also test basic view content within your controller
- Mailer(10%):
- A mailer to handle your contact request. This does not need to be linked to an SMTP
- Appropriate previews and tests for the mailer, which all
- Models(30%):
- Aseries of database migrations that you have used to build your application, with the schema including appropriate fields, data types, defaults, nullability and
- At least three model classes which provide appropriate validations, associations and scopes.
- Appropriate tests for each of your models, which all pass.
- Configuration(10%):
- Appropriate environment configuration for your application, including gems and environment
- Only the required routes needed for your
- The use of localised strings throughout your application.
- A git repository showing your development through regular
- Appropriate use of comments and code style
Refer to the attached marking scheme for the range of marks and expectations.
4. Optional Extras (no marks)
If you would like to include additional items in your project, feel free to do so, but please ensure that you meet the minimum requirements for marking, and that your optional extras do not break your code.
Some things you might consider:
- Authentication using Devise, perhaps with additional support for permissions and control using Pundit or Active
- Support for file uploads using Paperclip or CarrierWave, perhaps with ImageMagick
- The use of AJAX to provide in-place updates, or live
- Use of GitHub as a remote repository or deployment of your app to
5. What to submit?
You can use whatever development tool you like to develop your application, including Codenvy, RubyMine or the command line. However, your app must be built using Ruby on Rails 4.2 or above and Ruby 2.0 or above.
- Upload an archive containing the whole of your Rails
- Your archive should include all of your source code and git
- Call the file username_com2025_project.tar (or .zip), where username is your username.
- Upload your file to SurreyLearn.
- We will run the development version to mark your app using “railsserver”.
- I will be testing using the Chrome browser with using Firefox as a backup. To reducecompatibility issues, please test your web app on the Chrome browser before submitting