Giter Site home page Giter Site logo

thecodeteam / mosaicme Goto Github PK

View Code? Open in Web Editor NEW
15.0 15.0 16.0 35.72 MB

Micro service application that retrieves images from Twitter feeds, stores and process them to build a mosaic based on a selected picture.

License: MIT License

Python 14.24% Java 29.17% CSS 6.35% JavaScript 38.80% HTML 7.95% Shell 0.19% Ruby 3.30%

mosaicme's People

Contributors

adrianmo avatar bottkars avatar kacole2 avatar mangis-emc avatar msalem2 avatar pbutlerm avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mosaicme's Issues

Could not get container for s3

Hi, I tried to deploy the app and use Amazon S3 buckets to play with it. It says that it can't find a container for S3... Do I need ECS service also with Amazon S3? Or am I missing something? It's my first time trying a Docker app.

Remove Puppet bits

Since we are not using Puppet anymore to provision hosts, let's remove the existing Puppet bits from the repository.

Set up a CI/CD pipeline

Set up a CI/CD pipeline to automate testing and artifact delivery.

Some CI system that we can consider using: Travis, Circle, Semaphore

The artifacts (Docker images) will be pushed to Docker Hub.

Enhance the documentation

Better documentation of the project is needed. It would also be very useful to have some sequence and data flow diagrams.

Vagrant up not finishing

Hi,

just tried to vagrant up this app but it did not work unfortunately. He had issues doing the configurations with puppet. Any ideas on how to try and use the app?

br,

Daniel

Avoid using supervisord as the main container process

Currently, some components are using supervisord to run more than one process inside the container. Instead of that, each process should be started in a different container. Even though they could share the same Docker image.

Update the listener/collector component

Update the Listener component to the new business logic.

The Listener should do the following:

  1. Listen to the Twitter Streaming API for tweets containing the specified hashtag (e.g. #mosaicme)
  2. When there is a new tweet, extract the tweet data (i.e. author's name, handler, picture URL). If the tweet has no picture attached, discard it.
  3. Send a message to a specific queue with the extracted information.

Example:

{
    "twitter_handler": "johndoe",
    "name": "John Doe",
    "img_url": "http://example.com/394756138745.jpg"
}

Alternative source to download raw images

Right now the Engine relies on the raw bucket and it needs a minimum amount of images to start building mosaics. If there are not enough images in the raw bucket, the Engine will fall into an active loop to check and download images until the threshold is met.

It should have a fallback mechanism when there are not enough images and download them from a known source. For example, it could download images from the following website: http://www.vision.caltech.edu/Image_Datasets/Caltech256/

Standardize component configuration

At this time, MosaicMe components read the configuration in different ways. Which makes it confusing when we are developing and using them.

Let's standardize the way components read their configuration. According to the 12-factor app principles, the configuration should be obtained from environment variables.

Therefore, let's use the existing example.env that is used by the collector and cacher components and extend it with any needed env variable so that it is used by all the components.

Dockerize the sync component

Create a Dockerfile to generate an image of the sync component. Also provide documentation about how to build and use the image.

Dockerize the engine component

Create a Dockerfile to generate an image of the engine component. Also provide documentation about how to build and use the image.

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.