I created this project over the course of 67-272 Application Design & Development at Carnegie Mellon University in the spring of 2014. It's built in Ruby on Rails and styled with Foundation. Default access is for guests. Instructors have limited access to the system, however admins can change anything. Admin username and password: alex, secret
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, 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.
This application has a comprehensive testing suite which consists of both unit and cucumber tests. If you want to run unit tests, run rake:test units
. Cucumber tests can be ran with bundle exec rake cucumber
. There may be a couple of instances in which the cucumber tests fail.
Special Additions:
-
Every time the guest homepage is refreshed it shows a new chess quote (randomized function)
-
Admins can see balance due for each student registered for a camp by going to that camp's page
-
Family payment report can be accessed through a family's detail page
-
Aggregate financial report is on admin dashboard
-
Camp payment report can be accessed through the dashboard or through a camp's detail page
-
Family payment report only shows payments for the current year
-
I wrote my own routes to get to the reports since the narrative implied they were meant to be printed out. I thought that creating a new web page would be easier for admins to print and read than trying to find it at the bottom of a camp/family page or dashboard.
- In the admin dashboard the pagination acts weirdly. For example, in 'Under-filled Camps' I'm pulling camps out of a much larger paginated list, and I think the reason there aren't that many results per page is because it paginates based on the original 10 results per page, and if 9 are taken away it doesn't update. The same occurs with 'Under-staffed Camps'. If you're testing to see whether specific results are present, they probably are, you just need to go forward a few pages to find them. A solution is to not paginate them at all, but I am despite this issue since I tried to design a more spatially concise dashboard.
-
Guests can go to a camp's page and see its curriculum description.
-
The default instructor image has a sweet mustache. I am aware that not all instructors are men, however there is no gender attribute for instructor, so I can't change the default image based on gender. If I could I totally would though.