Giter Club home page Giter Club logo

cwru-hvz-source's Introduction

== CWRU HvZ

To get this running, pull down the source code and then run:

bundle install rake db:schema:load

To set up SMS integration with Twilio, set the following environment variables: TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN, TWILIO_PHONE_NUMBER

cwru-hvz-source's People

Contributors

cgaff623 avatar iandimayuga avatar imbstack avatar jameshochadel avatar tdooner avatar unforced avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

cwru-hvz-source's Issues

Location of Found Caches

It would be helpful to include the location of found caches. Perhaps the administrator can indicate where a cache was hidden when entering adding one to the database.

Admins Should Be Able To Edit Registration After Game Begins

Some fields of a registration, such as a Squad, off-campus status, or Card Code, should be editable after the game begins by admins.

I don't think any fields of a registration should be editable by the user themselves after the game begins.

So maybe this is a validation change that needs to be a bit smarter about what can be updated, and when.

Create a registration mechanism for a game.

Assuming a user is logged in, the user should be able to register for a game easily.

Upon registration, a 5-digit hexadecimal code should be generated for that player and stored in the corresponding column.

Facebook integration

Instead of playing around with Case's SSO and customizing the login process for each school, let's just integrate CaseHvZ with facebook's single-sign-on. And, we will have a "non-facebook" login for the less intrepid.

Pros:

  • Everyone has facebook.
  • With facebook integration, we can maybe do some other stuff later (automated posts, or use it as our notification platform)

Cons:

  • I would be slightly uncomfortable typing in my facebook password into another's computer. But typing in my SSO password makes me more uncomfortable, so this might not even be an issue.

Server will not start: Error loading compass

The following error is causing a 500 error when attempting to access any page on the site:

ActionView::Template::Error (File to import not found or unreadable: compass. Load path: /home/hvz/cwru-hvz-source (in /home/hvz/cwru-hvz-source/app/assets/stylesheets/application.css.scss)):

Make a list of games

There should be a game controller. This controller should be resourceful and have all appropriate views:
app/views/game/index.html.haml
app/views/game/list.html.haml
etc.

SMS Notification Upon Registration

When you register, you should be receive a text saying something like "Thanks for registering for HvZ Spring 2011. Your card code is 12345. The game begins Wednesday at Midnight!"

See Issue #14 for more details about how to implement this. As for proper location, I think app/controllers/registrations_controller.rb will be the correct place to add this.

Point system

Players earn points for doing cool stuff. Here is what we need to make this work:

  1. A mathematical function f(T) that models the difficulty of staying alive T hours. As a player remains human, this component of their score will increase every hour. When (if) they are zombified, this will continue to contribute to their total score but not increase further.

  2. A model to determine how many points a "tag" is worth to that zombie. I'm thinking perhaps a percentage of their parent's kill's points plus a percentage of that player's points? This is tough indeed.

A programmatic way to sum those two, along with the score achieved from winning missions.

Players should be able to see information about games.

e.g. GET /game/:id/

On this page:
-- number of players
-- current status ("begins at _____", "in progress....", "human victory!", etc.)
------- if the game has yet to begin, registration info (dates and times) should be displayed
-- the missions that occurred during that game and their outcomes
-- the game's homepage text (this should be its own field in the games table)
-- more?

Create a mass texting method.

In lib/SendNotification.rb, create a method which accepts a list of people and messages and sends all texts at once without having to sign in multiple times.

SMS Notifications On State Change

If you turn from a human to a zombie, you should be texted.

Check out lib/send_notification.rb for the working implementation. Whoever is working on this needs to add a delayed job to send the notification. This looks like:

Delayed::Job.enqueue SendNotification.new([player], "message")

OZ revealing feature

At some point, admins should be able to click a button and OZs will be revealed. This basically entails:

  • Making the OZs show up as Zombies on the Scoreboard
  • Correcting their point total to not reflect the automatic human survival bonus
  • Not adding in points for kills while hidden (i.e. to keep their identity a secret)

Admins should be warned before changing game times to the past

For example, if your game is scheduled to start tomorrow, and you go into the Manage Games page, and select it to begin yesterday, you should be warned via a popup alert (or something) that you are accidentally starting your game.

Since you cannot edit times after they have passed, this option is irreversible (without database hacking). Some warning is thus a good thing.

Sort scoreboard by time until death

It would be great if it was possible to see the player list and sort by time until starvation? This was possible with the old version of the site and would be very useful for humans trying to pay attention to population dynamics.

Layout!!!!

Someone needs to make us a layout that we can fit all our stuff into.

Mass Email

The site should allow admins to email sets of people. We can use the Gmail SMTP and casehvz's address.

Sets may include:
Registered, not Registered
Humans, Zombies, Deceased
OZs
Waiverless
Faculty

Perhaps some nice set operations could be available to admins.

Message board for Humans, Zombies, and All

Informal message boards exist (at least for zombies) on facebook, so I think it'd be nice to add a board on the website to talk about strategizing. One available only to humans, and the other available only to zombies. A general talk board, too.

Bring forums online

Forums have been offline for some time. Diagnose the issue and bring them back online.

Site should work initially without a Game in the db.

The homepage currently has way too many hacks in case there is not a game. These hacks should be removed and then magic applied so that when there is not a game in the database, the site continues to function.

Create Missions Logic

A missions controller needs to be created. It should be resourceful.

GET /missions/:id #Shows the given mission
GET /missions/:id/edit #Allows a mission to be edited by an administrator
GET /missions #Shows all missions for the currently selected game (session[:game])
etc...

Admin validation should definitely occur on new, edit, create, destroy, and update methods.

Each mission has a description that can should support the use of Markdown or Textile (whoever wants to implement this gets to make the call).

Information should be shown about the mission including:
-- the start and end times (from the db.)
-- the winning faction (iff now > mission_end)

Waiver Verification

The admin manager page should have a link to set a player's waivedness to "true" and players should be notified and then later removed if they do not have a waiver by a certain time.

Create infractions logic

Relatively simple object here....
Everyone should have access to GET /infractions/:id (infractions#show) and GET /infractions (infractions#list).

Only admins should have access to all the other resource actions.

Consult the db schema for exactly what infractions need to have.

Note that any frontend display of the word "Infraction" should be written as "Marks of Shame". :)

User control panel is needed

As a user, I should be able to:
-- update my own Name, Cell Number, and picture

Let's implement this in GET /person/:id/edit

Organizational Memory

Base Mission "templates" that can be applied to any game. They should have comments and analysis of previous implementations of the missions and when they can best be applied in the game.

Strictly gameplay, of course--storyline can be different every time.

CIA Students Need A Way To Login

So, this might be as easy as adding a hashed_password column to registrations and then creating a separate login page which allows you to pick your own "username", which is stored in the "caseid" field.

We should ensure that the desired username does not match [a-zA-Z]{3}[0-9]{0,4}. Or, better yet, it appends a transparent "cia-" to the beginning of the username and stores that as the caseid.

Then, when they log in with their own page, it puts their username (plus whatever "cia-" business is going on) into session[:cas_user].

Register Tags

As a player with a registration for a given game, I should be able to register a tag in that game assuming that:

  1. My faction ID is whatever value we assign to "zombie", or
  2. My "is_oz" field is set in the database
    and
  3. I am registered for that game (and the game has already begun)
  4. The card code I input identifies a recipient of my tag
  5. The tagee is whatever value we assign to "human".

Or, as a player with a registration for a given game, I should be able to register a tag without a card code for a recently finished mission (end time + 4 hours).

When a tag occurs, an entry should be populated in the Tags table, as well as a corresponding number of feeds in the Feeds table.

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.