FAFStats in Heroku Class diagram
FAFStats is originally a group project by Pyry Mäkinen and Iina Lumme, but will continue beyond the scope of the course.
The goal of this project is to create a platform where FAForever players can find and discuss game replays. To achieve this we are heavily relying on the (incomplete) FAF API as well as our own database.
FAF oAuth does not currently work, as a workaround you can log in as ANY user for testing purposes.
To test admin functionality use played id: 133636
To test registering (temporary login) and normal user functionality, use played id: 40063
Some concurrent requests to FAF API fail occassionally. We would greatly appreciate it if someone would look into these issues.
bundle install
bower install
npm install
rake db:migrate
rake db:seed
Run rails s
to start the server
Run grunt
(you will need grunt-cli) if you want to compile sass
The project relies on 3 main parts:
- The official FAF API (which is not under our control)
- This is where we get up to date information about games, players, maps etc.
- Stats API
- Handles all FAFStats unique functionality (comments, star ratings, tags and such)
- Angular Front-End
- The client side application
- (Discontinued) Redis & Resque & Resque Scheduler
- Runs scheduled tasks such as updating rating evolution and faction distribution charts
- Jobs will be run manually at the moment
- Discontinued, because of increased server costs
- player
- Every player that has been registered to FAF
- Uses the same player_id as FAF API
- user
- Every user who has logged into FAFStats
- Contains information related to the user
- comment
- Users can create comments that are connected to games
- game
- Games have comments and star_ratings as well as a "game rating" which is used to find most popular games
- rating
- (was used by resque to create rating evolution charts)
- star_rating
- 1-5 stars that users can give to games
- tag
- Moderators (user.usertype < 2) can add tags to players (such as "developer" or "pro")
- Uses "tagged" for many-to-many connection to player