Giter VIP home page Giter VIP logo

master-thesis's People

Contributors

piotrl avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

master-thesis's Issues

Preface

We should decide about thesis title by the end of the March 2016.
Also the first sight on the idea of the thesis should be presented on seminary.

Aggregation schedule mechanism

For now, aggregation is running only on start of the server. We want it running every hour as RescueTime provides new data every one hour.

User configuration

Plan is to allow aggregations for different users, not only one.

Action points

  • Login / Registration modules - #1
  • Aggregation config in database - #3
  • Users table
  • Configuration page

Resources

Lots of web-config related things might be covered by applying Spring starter archetype:

Chart experiments

Activities vs time

timestamp activity name productivity score
chosen period in popup -2 .. 0 .. 2

Can be used as starting point for looking at corelation between music.

API key managment

Currently for development purpose, I've hardcoded API keys in config codes.
It should be stored in database and be configurable from UI.

Optimize number of requests for last.fm API

For every track, we need external API calls for detailed information.
A number of requests are huge and slows down aggregation process.

Current situation

  • Data from 14 days
  • Number of requests: 1500
  • Takes around 5 minutes

Most of the requests aren't needed as we save copies in the database.

Aggregation activities from ResecueTime

  • Builder for API calls (low level)
  • Aggregate from specific period
  • Save activities to database with time series (e.g. from 10:01 to 10:17 I was browsing facebook)
  • Extract common activity categories (e.g. browsing, shopping, scheduling)

Instruction how to get API Key

As we base on external APIs, part of users won't be familiar with last.fm or RescueTime.

There's need to write complete instruction how to get API keys from those services - with screenshots.

Account managment

There's need to create account on which you'll manage yout API keys and settings.

  • Registration
  • Login
  • Settings

Continuous aggregation per user mechanism

Action points

  • Works per user
  • Status & handling failed aggregation
  • Everyday schedule - #2
  • Independent from the reports mechanism
  • Handling errors - repeating requests / queue

Database schema

  • aggregations: per user, contains status when started and finished.
  • aggregations_requests: backups API calls - do we need it? Might be useful for error handling. It might be called queue mechanism.

Aggregate data from lastfm

Scrobbles

  • Scrobbles per user
  • Scrobbles from specific period (e.g. last month till today)

Global data details

  • Tracks details globally
  • Artists details globally
  • Tags

Prepare new project stack

Previous solution based on node.js and MongoDB was complicated and not predictable.

Now we need Java & PostgreSQL stack.

  • Spring boot
  • PostgreSQL

Deployment ready

Keep in mind thins to do before first public deployment

  • Re-enable CRON
  • After aggregation finished, refresh DB views
  • JavaScript calls shouldn't be hard-coded to one domain
  • Loader for AJAX events
  • Fix RescueTime API connections
  • Settings page

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.