Complete chapters 2, 3, 5, and 6 of the textbook ("Ruby On Rails Tutorial"), Third Edition. Ideally, you would try the main bits of chapters 7 and 8 too, if time permits.
Everyone in the group MUST complete this part of the project BEFORE starting the final project. Collaboration is permitted and encouraged! You do not need to submit anything for this part of the project, but completing it as soon as possible is highly recommended as it will help in completing the second part (i.e. the final project, below).
Your team will design, develop, and document a web application using Ruby on Rails for the project idea that was approved by the instructor.
Choose project managers playing the same roles as we defined in previous projects, i.e. overall, documentation, and testing.
ALL team members are required to write Ruby/Rails code that is submitted in the final solution. All team members are required to write some portion of the controller. Your solution must have a strong model component with a database that contains multiple tables and relationships between them.
Your solution must be equally partitioned between the team members (you will indicate this partitioning in your well documented code and readme file - see below). Your final grade will be based on how well you equally partition this work.
In addition, you should use as many technologies and frameworks as you like to help you develop your web application. Though, remember that your solution must be a Rails implementation. You may find that you want to use some of the technologies and frameworks you learned about in the Tech Task 1 talks. Clearly state in your readme file about all of the technologies and frameworks in your Final Project presentation as this will greatly help with receiving a high score on this assignment.
You must test and document your solution well. I suggest using a Ruby testing framework such as Minitest or RSpec.
-
68% Implementation Your work (well documented and tested source code) will be retrieved by the graders from your team's Git repository on Github under the course's organization cse3901-osu-2015au. All team member's work must eventually be merged into a final committed version in the private repository.
-
10% Presentation Your presentation should describe the features from an end-user perspective, but should focus on the technical details of the design of your application from an implementer's perspective (database schemas, architecture, etc).
-
10% Balanced work load Graders will determine the work load balance of your group work by using Git and Github repository analytics and documentation. In order to receive the full 10% of this portion of your grade, your team must show to the graders that work was equally balanced between the team members. Thus, your team must make a conscious effort to show Git and Github activity by all team members. In addition, your team must clearly document individual contributions in your documentation (see below) throughout the development of your solution. Activity that indicates only one or two members submitting work will result in a reduction in points.
- 5% Documentation Your team must document your solution well. Ensure that documentation is consistent across all source code.
At the top of each file you must indicate which team member created the file and the date of creation. Whenever a team member edits a file to add functionality or perform debugging that team member must add their name at the top of the file and indicate the date of their changes and a single line description of their changes. The top of the file must also contain a short paragraph that provides an overall description of the contents of the file, e.g. what problem you are solving.
-
5% Testing At a minimum, your team must provide the graders with a description of your test plan and indicate what does and does not work. It would be very helpful if you provide test cases to the graders as well for both Unit and Integration testing (also see lecture notes).
-
2% readme file Provide a readme text file that 1) States your team name and members, 2) Chosen managers, 3) describes the organization and structure of your code, 4) Describes how the graders will execute your application, and 5) clearly indicates which team member contributed to each part of the solution (only indicate here work that made it to the final submission). Clearly indicate which team members performed testing and to which portions of the solutions. Providing a short or uninformative readme file will result in considerable point reduction.