Coder Social home page Coder Social logo

level4project's Introduction

UK-based Software engineer with domain experience in automated control systems, medical informatics, and financial services.

level4project's People

Contributors

officialpatterson avatar

Watchers

 avatar  avatar

level4project's Issues

Create notification script

Notification script will run as a stand alone application. A notification will occur if more than 30 tweets occur in a single hour about an entity(dimension).

pseudocode:

  1. for each entity in notifications
    request time distribution per hour for past 24 hours
  2. if last hour is 10% than mean of the previous 23 hours notify(entity, dimension)

notify() is just a simple lookup and post.

Add/remove track button on entity page

If a user is not tracking an entity then the page should display a 'track' button.

if they are tracking that entity, the page should display an 'untracked' button

Have entity list in appropriate datastore

Currently the live classification component retrieves its entities from a static file called entities.tsv.

This should be in a database.
Use MongoDB - as its the one used throughout GTBT - to create a collection and document attributes name and active.

Create Notification class

static methods:
notifications(tweet)
notify(entity)
send_notifications(user, entity, msg):

notifications(tweet)- callback executed from POST requests to data-service.

notifications(tweet):
1. if entity is in track List && favourites > 15:
2. notify(entity)

notify(entity):
1. get list of users that track entity
2. for user in list
3. send_notification(user, entity, “high favourite tweet”)

send_notifications(user, entity, msg):
1. HTTP post to /app/addnotification/

Extract JS files from templates.

Currently there is javascript code in the templates files. For reusability/maintainability reasons this should be extracted and placed under a js folder in the static directory.

Add Classification module to system

Large part of system.
The module must use a statistical/probabilistic classifier to classify tweets into a specified reputation dimension of the model.

Implement exact match searching

The UI currently shows a search box that has zero-functionality. change this so that when the user submits a query the client interface uses exact match searching to find the entity and redirects to the correct entity page.

Create request for retrieving location distributions

To reduce request times/response sizes, create a request type that returns the country-level location distributions of an entity.

the url for requesting should be:
/entity_name/locations

The data returned should be a son array of objects in the following format:
{Dimension: "dimension_name", locations:["US": 10, "UK": 5]}

Notifications system

The user must be notified of any events that happen regarding entities that they watch.
the events are:

  • rate of tweets increase/decrease by x percent
  • large change in sentiment value of tweets

The numbers for this is abritrary. Probably set low for testing purposes.

Create request for retrieving dimension distributions

To reduce request times/response sizes, create request that will return the size of each reputation dimension in a json array.

  • url:
    /entity_name/dimensions/

*object format
{dimension: "dimension_name" size: 56}

Use Templating for UI

The GTBTApplication does not use templating for its views therefore there is duplicated HTML/JS in the views.
Use Django's templating system - or any other framework - to make good use of templating.

POST Request on data service for adding new tweets

Currently, the classifier posts new tweets directly to the database.

This must be altered so that the classifier inserts new tweets into the database using a post request to the data-service component

Implement Add Track feature

This featue requires a user to be logged in.

The first step the user must take is to see if the entity they wish to track is already in the system. If it is present in the database and is active, add the entity name to the list of the users tracks.

If the entity is not present in the system add it to the database as active.

Sentiment Analysis for Feed-Enrichment

create a new classifier that would be able to classify a tweet as either positive/negative/neutral in sentiment towards the entity.

  • This may require more crowdsourcing to create the gold standard collection

Display Personalised Track List on front page.

for a logged in user, the list of entities that the user is tracking should be displayed. if they are not tracking any entities the area should say "You are not tracking entities yet"

Create Architecture Diagram

The system composes of 3 distinct components:

  • data-service
  • feed-enrichment
  • client-application

with one external component: twitter.

Create a diagram to show the relationship between each.

Incorrect login details redirects to blank page

If a user enters incorrect login details and then submits the form the user is redirected to a blank page that says "incorrect login details" . This should be redirected to the original login page with an appropriate error message given this way.

Build profile view

This view should show the name of the user along with the email, username, and list of watched entities.

Implement User system

The project should allows users to register with GTBT.
Each user should have an email address and password that would be able to identify them.
The main purpose of the user system is to give users a choice of tracking specific entities in the system, i.e. instead of being shown every entity in the system only show the ones they are interested in.
Therefore the requirements are:

  • Registration/login form for users
  • user attribute called tracked entities

This will obviously require a SQL database and the tables would be users(id, email, password), watched_entities(user_id, enity_name)

Extract Superclass of RequestHandler in Tornado REST Service

Currently Each handler is specified separately in each file as totally independent classes.

However this is not the case and the common features of which should be pulled out. For example, the database connection instantiation should be pulled up.

Replace Chart.js graph rendering with D3

Chart.js fails to provide means of logarithmic scaling where chart data can be wide ranging means the graph is rendered improperly.

Replace all graphs/charts with d3

Rethink Entity List overview.

The current way of retrieving a list of entities in the system is to query for all entities in the classification collection.

This may return no entities if the entity is new to the system and/or is a rarely occurring entity in the Twittersphere

Build Edit profile view

Very similar to issue #6 - except this time the data hsould be displayed in a form apart from the watched entities. then any changes made in the form should be submitted and the database updated.

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.