This is a project that I made individually for the Spring 2014 semester of Application Design & Development (67-272) class in the Information Systems department at Carnegie Mellon University. The project is a system used to keep track of camps, curriculums, locations, students, families, registrations, and instructors associated with a fictional summer chess camp. It contains CRUD functionality, authentication and authorization, dynamic Google maps, nested forms, and a Model-View-Controller framework. I won a class award for design for this project.
The chess camp project was completed in five "phases" throughout the semester. For the phases, we were given a minimal starter code template, which we were expected to add to. The directions for the final phase of the project are found below. The class is taught by Professor Larry Heimann (github.com/profh).
This is starter code for the course project in 67-272: Application Design and Development. This code has basic views and controllers required for phase 3 and it passes all cucumber tests. In addition, it has all the models created and tested as specified in phase 4.
Students can use this as a base to work off of in phase 5 -- HOWEVER, the basic design, color scheme, images and the like must be modified from the tepid design provided here. (BTW, the text on the static pages like home, about, and contact are purposefully snarky -- you would never use this in a real app and we expect you to modify it to something more appropriate.) We will reiterate this warning in phase 5 but we are saying it now as well to maximize the opportunities to get the word out: if students stay with the CSS, images and text used here they can expect to lose 10 points on their phase 5 grade. (If you want to have fun with this project you have to make it your own and style it as you see fit.)
To set this up, clone this repository, run the bundle install
command to ensure you have all the needed gems and then create the database with rake db:migrate
. If you want to populate the system with fictitious, but somewhat realistic data (similar to the data given in the spreadsheets in phase 1), you can run the rake db:populate
command. The populate script will create:
- 100 families
- over 200 students
- over 35 camps
Many objects are created with some element of randomness so you will get slightly different results each time it is run. However, instructors and users are fixed. All users in the system have a password of 'secret'. In terms of users there are two admins (Alex and Mark) and four instructor-level users (our four Head TAs). The username for each is their first name in all lowercase.
Instructions for what needs to be done in this phase of the project can be found in the phase 5 write-up found on the 67-272 course site.