Giter VIP home page Giter VIP logo

chess_camp's Introduction

Chess Camp

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.

chess_camp's People

Contributors

profh avatar

Watchers

Duncan McIsaac avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.