/gamer-log

WEB platform used to collect gamer scores and provides some analysis functions

Primary LanguageClojure

Gamer-log

The GamerLog project is an engine which collects log files (containing gamers and scores) to put them in a WEB portal, The platform provides some analysis functionalities on log datas, The plaform is developed with Clojure language with the WEB API Compojure

Namespaces

  • The data-loader namespace (/src/org/gamer/log/data/data_loader.clj): this namespace is responsible for loading data from the file system, storing logs in memory and querrying the memory databse (using the datalog language)

  • The statistics-engine namespace (/src/org/gamer/log/business/statistics_engine.clj): this namespace provides statistics operations (top-ten players, average and standard deviation of a given player across games and machines, or of a given game across players and machines, etc)

  • The pesenter namespace (/src/org/gamer/log/presentation/presenter.clj): this namespace is responsible of html view creation using the hiccup framework

  • The controller namespace (/src/org/gamer/log/controller/handler.clj): it's the central conroller o he application which receives and treats all client http requests

  • The config-manager namespace (/src/org/gamer/log/config/config_manager.clj): this namespace is responsible of loading properties from the gamer-log.properties (for the moment the only property we have is he path of scores logs)

  • The data-schedular namespace (/src/org/gamer/log/data/data_schedular.clj): this namespace is responsible for scheduling the data loader job.

Prerequisites

You will need Leiningen 1.7.0 or above installed.

Frameworks

Datalog

To store data in memoy and facilitate querying them i used the clojure implementation Datalog (clojure.contrib.datalog), i chose this in memory db implementation for two reasons:

  • it's a light implementation, (we are not obliged start a db server or install other features to use it), in our project we need just to struture datas and facilitate querying them.
  • it's based on the datalog querying language which is a strong querying language used in many fields.

Quartzite

the scheduling system which is responsible for loading data from the file system to memory is implemented with Quartzite framework which is based on the famous cheduling framework Quartz.

Running

Steps to launch the application:

  • 1- Change the application log path in the log4j.properties

  • 2- Change the scores log path (the path in which the application will find the servers, games, players and scores)

  • 3- Launch the following command inside the app directory

    lein ring server

License

Copyright © 2014 Gamer-log