Assignment 1
Customized Scaffold with Search
Due Friday April 19 before 11:30pm
Overview
For this project, you will create a scaffold-based application, customize all components and add a search action.
Application Design
You may choose the design and model for the scaffold. However, you may want to choose a design that can be used for subsequent assignments, which should ultimately include the following possibilities:
- Each table entry must support posted comments.
- Different users may post table items or comments that belong to those items.
- Table items may be tagged with a variety of categories.
- Table items should have some form of ratings so that they can be recommended to users.
The above requirements are only for the future, but you may want to consider them when deciding on the design for this assignment.
Finally, your choice of model and application should be substantively different than the examples presented in class (e.g. no movie or pizza restaurant applications are allowed). Pick a subject matter that you know a lot about. That way you'll have the knowledge to create a unique application.
Scaffold customizations
Your application should include the following customizations:
- Modify the routes.rb file so that the root path takes the user to an appropriate starting view.
- Modify the model so that it uses validations appropriate for your application. At least one validation should be a customized validation (see Rails guide validation section 6.2 for examples)
- Modify the model so that it has at least one virtual attribute that can be used for alternate presentations.
- Modify views so that alternate web controls (e.g. radio buttons, menus) or alternate data displays are used.
- Modify the layout template (in app/views/layouts) so that a constant message, header or image appears across all of the site's pages.
- Modify the css file so that your application has a visual presentation that is appropriate for your application. Small, simple changes are fine. Changes that hinder usability should be avoided. You can find the scaffold css file in public/stylesheets.
- Make additional customizations that is appropriate for your application.
Search
Add additional actions (controller methods) and corresponding views that support search for items in your table. In addition to a text field, your search form should provide at least one drop-down menu to give the user an additional option (e.g. how to order the results; which field to search on). Make sure to provide useful links so that a user can navigate to all of the application's functions.
Report
Write a one-page portfolio-quality report that summarizes the accomplishments for your project. The level of professionalism for the report should be such that you would want to show it to potential employers. The report may make use of section headers, bullet points, numbered lists and other formatted presentations. It should make it easy for me to tell how your submission addresses the requirements. I will use the report to guide my review of your application.
Here are some suggestions for creating your report:
- Provide a concise summary of what your application does.
- Provide an itemized list of modifications that match the assignment requirements.
- Focus on aspects that are unique to your assignment. Omit generic, obvious steps (e.g. "I performed a migration by typing in rake db:migrate").
- Use single-space for the lines in your report.
- Think about your report's organization and use headers to label sections.
Submission
The summary document should use a common presentation format, ideally PDF. Create a zip file of your application folder and submit the zip file using the D2L online submission site.
Grading
This project is worth 20 points and will be reviewed using the following criteria:
- Clarity. The summary document should concisely and efficiently present the project accomplishments.
- Accomplishment. The project accomplishments should surpass the project requirements.
- Soundness. Explanations and implementation should be technically correct.
- Understanding. The summary document should use terms (e.g. model, controller, view, HTML, etc.) to show understanding of the project concepts.