Giter VIP home page Giter VIP logo

mi-intento-final-de-travian's Introduction

MyTravian

MyTravian will be a platform for analyzing Travian's data with machine learning algorithms.

The project born during my master's thesis and I am still pushing the idea.

Roadmap for the Beta

[x] Collector for fetching the data
[x] Storage system
[] Medusa for player predictions
[] Satellite tables for pushing the data to the front
[] Front for showing the results

Arch Overview

The platform is divided in serveral Erlang style applications and it drives itself using events.

Apps:

MyTrvian Arch

mi-intento-final-de-travian's People

Contributors

sirwerto avatar

Stargazers

 avatar

Watchers

 avatar

mi-intento-final-de-travian's Issues

DAG for map.sql item in Collector

Currently, the flow of the map.sql for Collector has not been though in advance.

This is the new proposed flow

  • Agg Server
  • Agg Village
  • Agg Player
  • Agg Alliance

Image

Verify that Travian doesn't reuse urls in less than 8 days

In The Red Natar, we are using urls as server identifier because Travian doesn't provide them.

Recently, we have discovered that Travian is reusing this urls for new servers, after thinking about it, it's obvious. So we have been mixing servers under the same url.

For fixing that, we have develop the archive system #17 and we have hardcoded a value of 7 days to consider a server finished.

The purpose of this task is to evaluate if this value is enough or we need to lower it. A confirmation by a Travian member via Discord should be enough.

`agg_players` flow

Create an agg_players.c6bert table to store an player's historical data in an incremental way

Define a schema
Set up the test
Write the code

Test scenarios

Create the first agg_players.c6bert
Create the second agg_players.c6bert
Create a n agg_players.c6bert

agg_server flow

Collector.AggServer is the flow for metrics related to the server, number of new players, number of population, etc

UTC offsets update

Travian create the snapshot after midnight but using the midnight server's time, not a standar one.

We are currently fetching the snapshot assuming a unique offset, which is not correct and can affect the model, and also we are in risk of fetching some snapshot with a huge delay and therefore not useful prediction.

eg: fetching snapshot at 01:00 UTC+0 of a server with UTC-3 will be 22:00 local time, and this info will be outdated at midnight with the new snapshot created by Travian

Rename `TTypes.grid_position`

TTypes.grid_position is not well named, indeed, it is misleading as it is the identifier of the poisition(I think). So, propose a new name an modify it everywhere.

Posible names:

  • map_id
  • position_id

Remove `Collector.GenWorker.Metadata`

Collector.GenWorker.Metadata is a GenServer which relies on :travianmap.get_info() for getting server metadata(speed, starting date, ...).

As this is higlely ineficient and very prone to error due to the inestability of web scraping, the metadata is going to be processed in the agg_server flow instead of using :travianmap.get_info().

This issue is for deactivating/removing the code related to the old metadata flow, some relevant files are:

Collector
Collector.GenCollector
Collector.GenWorker.Metadata
Collector.ServerMetadata
Collector.Supervisor.Metadata

Fix CSS

After updating to phoenix 1.7.10, some css has been broken

Define `Storage.list_servers`

Create a function under Storage for listing all the servers under the root folder.

Consider to use TTypes.server_id_from_path to return server_ids

This function will be used for doing data reloads

Improve performance on medusa_view

Instead of generating medusa table rows in the html, do it in a json script and then call simple tables, maybe it has better performance

TRN API

API for TRN

We can process the current tables(to decide which ones) in Imperatoris and push it to Legati via mnesia dets

Create a system for closing servers once they are finished

Travian reuse urls from previous servers. Our storage system was design with that idea that this urls were unique.

We need to define a method for closing the servers, moving them to another folder and rename them(incremental rename) for not erasing previous data.

I propose to close it after 7 seven days without a new fresh map.sql

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.