EtherBeat - Implement a visualization service for EtherBeat

Google Summer of Code 2019


Welcome to the SCoRe Lab Google Summer of Code (GSoC) 2019 project ideas page. We are a dynamic and enthusiastic nonprofit research group pioneering in Internet of Things (IoT), Embedded Systems, Computer Security, Software Tools and 'Wireless Adhoc and Sensor Networks' and is one of the best groups in South Asia. This is the 4th time that we are participating in the GSoC, we will use this page to develop possible project ideas that have on the above mentioned areas. Please note that anyone who is interested can participate in this process. You do not have to be a GSoC student or mentor to suggest possible project ideas. You can also talk to us about possible project ideas and we are happy to improve or heip you with them. Please keep in mind that projects need to be realistically something that is able to be functionally completed by a student working full time for about eight weeks. Thanks!

Mailing list: score-community@googlegroups.com

Gitter Channel: https://gitter.im/scorelab/

Suggested Proposal Template

Important Guidelines on Submitting Ideas

There are some important guidelines to submit ideas, please read these carefully before adding your ideas;:

  • There is a fixed time period for implementing and coding your ideas.
  • Come up with attainable goals and you will be able to complete what you set out to do. You can always contact our mentors and community and get an idea about the workload and whether you might be able to complete them.
  • You are free to come up with your own ideas. The ideas should be about Internet of Things (IOT), Embedded Systems, Computer Security, Software Tools and 'Wireless Adhoc and Sensor Networks’. Also if you love to work on any of these subjects but do not have an idea you can always contact us.
  • Lets Talk! The best way to solve problems that you might have is to contact our mentors and also our community. This will help you to not get bogged down in your ideas and to move on.
  • We encourage you to do documentation so that we can keep track of your progress and also help you if things are not going according to plan. Although not compulsory we have a strong belief that this method can cut down your time to code and also the workload of the mentors drastically.

Project list for GSoC 2019

  • FrontEnd UI page for NodeCloud Resource management

    Currently we can create resources on AWS, Azure and GCP using nodecloud. We need to look at all the respective portals after creating the resources whether they are up or not. It would be really helpful to have a common dashboard for checking the resources on web based ui.

    Possible solutions can be starting a local server and fetching data from local database and showing it to user on web UI, or fetching the resources directly from user’s cloud provider account.

    We can keep the scope limited for GSoC 19 for showing the resources with no interaction from the UI. And can later extend the scope as to allow resource creation from web UI.

    Expected Results:
    Required Knowledge: NodeJS, React, Angular
    Github: https://github.com/cloudlibz/nodecloud
    Possible Mentors: Rumesh Eranga Hapuarachchi, Rajika Imal, Rajendra
  • NodeCloud Provider implementation

    NodeCloud currently has plugins for AWS, GCP and Azure. Student should implement two or more providers in GSoC. Cloud providers to be added are Ali cloud, and Digital ocean. Student should come up with a solid plan on which services should be added and how the respective services can mapped to existing supported providers, i.e AWS, GCP and Azure. Further there can be improvements to the existing plugin APIs. Student should research on this can discuss with the mentors on how proceed if there can be any changes done.

    Expected Results:
    Required Knowledge: NodeJS, Cloud Vendors
    Github: https://github.com/cloudlibz/nodecloud
    Possible Mentors: Rumesh Eranga Hapuarachchi, Rajika
  • CLocal-GCP Core extraction

    Clocal GCP can be separated into core CLI application and a list of providers. Currently it resides in the same repository but having separate docker containers. Student can discuss the best approaches with the mentors and start implementing. What is expected is a well written CLI application which can be integrated with plugins. For an example a user can install the clocal GCP cli application and add separate plugins as necessary.
    example- Cloud Function plugin.
    This task involves creating the core CLI application and converting existing cloud emulation services to plugins.

    Expected Results: Core application and services as plugins.
    Required Knowledge: NodeJS, Google Cloud Platform
    Github: https://github.com/cloudlibz/clocal-gcp
    Possible Mentors: Rumesh Eranga Hapuarachchi, Dilantha
  • CLocal-GCP Services

    Here the task is to implement the emulation services for below Google Cloud platform products. These has to be implemented as individual services as docker containers, so that in a later phase these will be used as plugins for clocal gcp core CLI application. And students are free to choose the technology stack they are most familiar with to implement the emulation services.But NodeJS and python are preferred.

    Expected Results: Minimum of 6 GCP services should be locally emulated.
    • Compute Engine
    • BigQuery
    • Cloud Endpoints
    • Cloud Pub/Sub
    • Cloud Datastore
    • Cloud IAM

    Required Knowledge: NodeJS, Google Cloud Platform
    Github: https://github.com/cloudlibz/clocal-gcp
    Possible Mentors: Rumesh Eranga Hapuarachchi, Dilantha
  • CLocal-Azure Services

    Here the task is to implement the emulation services for below Azure Cloud services. These has to be implemented as individual services as docker containers, so that in a later phase these will be used as plugins for clocal Azure core CLI application. And students are free to choose the technology stack they are most familiar with to implement the emulation services.But NodeJS is preferred.

    Expected Results: Minimum of 6 Azure services should be locally emulated.
    Required Knowledge: NodeJS, Azure
    Github: https://github.com/cloudlibz/clocal-azure
    Possible Mentors: Rumesh Eranga Hapuarachchi, Lakindu
  • GoCloud Provider implementation (Azure, Rackspace, Ali cloud)

    GoCloud currently supports AWS, GCP and Vultr. Student should implement two or more providers during his GSoC Period. Services includes but not limited to following types.

    Expected Results: Minimum of two new cloud providers as plugins. For each provider minimum of 6 services must be implemented.
    Required Knowledge: GoLang, Cloud Vendors
    Github: https://github.com/cloudlibz/gocloud
    Possible Mentors: Rumesh Eranga Hapuarachchi, Pratik
  • GoCloud Extending API

    GoCloud is a golang library which hides the difference between different APIs provided by varied cloud providers (AWS, GCP, OpenStack etc.) and allows you to manage different cloud resources through a unified and easy to use API.,br />Students task is to implement the following services for AWS, GCP, Ali cloud Azure, rackspace in the GoCloud.

    Expected Results:
    Required Knowledge: GoLang, Cloud Vendors
    Github: https://github.com/cloudlibz/gocloud
    Possible Mentors: Rumesh Eranga Hapuarachchi, Pratik
  • Fact-Bounty - Implement a web interface for a crowd-driven Fact-checking platform

    “The recent decade has witnessed the birth of social media ecosystems that brings social organizations, media content and various stakeholders together, and now it appears significant advantages of comprehensiveness, diversity and wisdom that provide users with higher quality of experiences. Meanwhile, social media ecosystems suffer from security, privacy and trustworthiness threats. How to leverage the power of intelligent crowds to improve the ecosystem’s efficacy and efficiency, as well as ensure its security and privacy become burning and challenging issues.”

    Expected Results: This project is to implement a reactive UI interface to show news-items published in low-credible web-sources (specially in Sri Lanka). Also, there should be a component to seek the opinion of volunteers about the veracity of published claims. This will help to spread the true-accuracy of the claims across a broad community, and create a socially-clean echo-chambers.
    Required Knowledge: ReactJS (or any relevant JS)
    Github: https://github.com/scorelab/fact-Bounty
    Possible Mentors: Oshan Mudannayake
  • Fact-Bounty - Implement a backend for a crowd-driven Fact-checking platform

    “The recent decade has witnessed the birth of social media ecosystems that brings social organizations, media content and various stakeholders together, and now it appears significant advantages of comprehensiveness, diversity and wisdom that provide users with higher quality of experiences. Meanwhile, social media ecosystems suffer from security, privacy and trustworthiness threats. How to leverage the power of intelligent crowds to improve the ecosystem’s efficacy and efficiency, as well as ensure its security and privacy become burning and challenging issues.”

    Expected Results: This project aims to implement the back-end of the Fact-checking platform mentioned in Project 1. This will be a NodeJS API that will serve for the requests of the React frontend. The scope of the project also includes, writing unit tests for the endpoints and making a documentation.
    Required Knowledge: NodeJS
    Github: https://github.com/scorelab/fact-Bounty
    Possible Mentors: Oshan Mudannayake
  • Bassa - Implementing file upload feature and files ACL management in Bassa

    As of now Bassa is only capable of downloading files from URLs, magnet links but still file upload feature is something which is missing for version 1 release. Also, with having a lot of files and user activity on Bassa, file management should be implemented. For this task, you have to implement file upload feature in Bassa and have to implement file ACLs as it’s core feature.

    Expected Results: At the end of your summer, we expect that you will able to make file management as good as Google Drive or any personal file storage systems. Also, users should be able to share their local files on Bassa by uploading it to server.
    Required Knowledge: AngularJs, Python, Flask, ACL management, Web Development
    Github: https://github.com/scorelab/Bassa
    Possible Mentors: Nirmal Sarswat, TBA
  • Bassa - Making installation of Bassa and containerize in a better way

    Right now, we have some shell scripts to install bassa in some environments, We need to complete them and make installing Bassa an easy task. Users should be able to install bassa on Debian(apt/apt-get) based, Arch(pacman) based and CentoOS(yum) based Linux OSs. Currently, the shell scripts can identify the different environments and use the correct installation script. Second part of this project is to bring 'aria2c' into docker environment. RIght now, 'aria2c' runs on system environment which we want to run as a docker container. Then complete the Kuberneted scripts to deploy all these dockers on a Kubenetes cluster.

    Expected Results: At the end of your summer, we expect that you will make Bassa installable on any Linux based OS. Also, aria2c will run as a separate service in Kubenetes cluster.
    Required Knowledge: Shell scripting, Docker, Kubernetes, aria2
    Github: https://github.com/scorelab/Bassa
    Possible Mentors: Nirmal Sarswat, Milindu Kumarage
  • Bassa - Shifting Bassa codebase from AngularJs to React and use Webpack

    Bassa is built with AngularJs, Python, Flask, Gulp, Bower and more. Nowsince the requirements re finalized and we are sure of the features, we are thinking moving out of MVP to s stable release. However, right now, we are on AngularJs which is not much supportive. So we want to shift the whole codebase to React, ideally to the latest version of React. So the things we want to bring with React is that;

    • Mobile Support
    • Clean codebase
    • Using React Material for UIs, with Redux, Redux Sagsa and React Router.
    • Starting with an industrial boilerplate is a plus ( Eg - React Boilerplate )

    Expected Results: You will start with changing the basic layouts, understanding code structure and other front-end things. At the end of your work, we expect you will be able to complete front-end with React.
    Required Knowledge: React, ES6, Webpack Some knowledge in Python, Flask and MySQL
    Github: https://github.com/scorelab/Bassa
    Possible Mentors: Nirmal Sarswat, Milindu Kumarage
  • Senz - Create a web-based admin panel for Senz server

    Currently, Senz server is implemented in scala and it uses mongodb as the database server. Implement a admin panel to let the users to create projects in the server and control their devices from the web interface.

    Expected Results:
    • User registration
    • Create new projects and add register new devices
    • Visualize the traffic of each device

    Required Knowledge: ReactJS, NodeJS, MongoDB
    Github: https://github.com/scorelab/senz
    Possible Mentors: Sumedhe Dissanayake
  • Senz - Create a Node.js module for senz clients

    Implement a Node.js module to use in node.js applications to give the ability to act as a Senz device and communicate with the Senz server. The module should work as a message parser between the application and the server.

    Expected Results: At the end of your summer, we expect that you will create a node.js module.. And users should be able to install and use the module in their node.js projects to communicate with the Senz server.
    Required Knowledge: Node.js, Scala
    Github: https://github.com/scorelab/senz
    Possible Mentors: Sumedhe Dissanayake
  • LabelLab - Implement the LabelLab Mobile App

    The requirement for the project originated with the need to label thousands of images of elephants. However the project was generalized to label not just elephant images, but any animal in general. The web application should allow the users to to upload batches of images and classify them. It will also have the features to run classifications against a trained model.

    Expected Results:
    • Implement an API to serve for the requests of the mobile app
    • Implement a mobile app which could identify the classified objects in real time
    • Allow admin features through the mobile app
    • Provide proper testing and documentation

    Required Knowledge: ReactJS, NodeJS, Python
    Github: https://github.com/scorelab/LabelLab
    Possible Mentors: Oshan Mudannayake, Sumedhe Dissanayake
  • LabelLab - Implement the LabelLab Web Application

    The requirement for the project originated with the need to label thousands of images of elephants. However the project was generalized to label not just elephant images, but any animal in general. The web application should allow the users to to upload batches of images and classify them. It will also have the features to run classifications against a trained model.

    Expected Results:
    • Develop a web application that allow the users to upload and manage images
    • Provide functions for the system to be further extended with image classification using machine learning library such as Tensorflow
    • Implement testing
    • Write documentation

    Required Knowledge: ReactJS, NodeJS, Python
    Github: https://github.com/scorelab/LabelLab
    Possible Mentors: Oshan Mudannayake, Sumedhe Dissanayake
  • Dunner - Complete the tasks in Road Map of Dunner up to v1.0

    Dunner is a task runner tool like Grunt but used Docker images as CircleCI does. You can define tasks and steps of the tasks in your `.dunner.yaml` file and then run these steps with `Dunner do taskname`. We have several features planned in our road map, we need you to complete them one issue by one. See the list of features planned for v0.1 and v1.0 below.

    Expected Results: At the end of your summer, we expect that you will complete all the features planned up to v1.0. Also, you have to improve the wikis which are related to your development areas. Come up with a plan what features you are gonna do when as a timeline. Consider about improving the wikis also in your timeline.
    Required Knowledge: Goland, Docker, some idea about Task Runners, Linux
    Github: https://github.com/leopardslab/Dunner
    Possible Mentors: Milindu Kumarage, Rumesh Hapuarachchi
  • TensorMap - Implement the TensorMap Web Application

    TensorMap will be a web application that will allow the users to create machine learning algorithms visually. TensorMap will support reverse engineering of the visual layout to a Tensorflow implementation in preferred languages. The goal of the project is to let the beginners play with machine learning algorithms in tensorflow without less background knowledge about the library.

    Expected Results:
    • Implement friendly UI to design machine learning algorithms
    • Implement a code generator using the design
    • Export and import the project
    • Visualize the progress and the output

    Required Knowledge: Tensorflow, ReactJS, NodeJS
    Github: https://github.com/scorelab/TensorMap
    Possible Mentors: Oshan Mudannayake, Sumedhe Dissanayake
  • Dronesym - Provide pluggable option for firebase alternatives

    Since DroneSym is an open source application supporting users to track their drone fleet, we have to even provide options to plug in other open source alternatives for firebase. To support users to be able to scale and use the other best, open source and cost effective resources. No doubt, Firebase is one of the best option for realtime databases, auth etc. but it's not so scalable when coming to cost effectiveness. We should definitely come up with a solution and design a model to provide plugin options to at least two other alternative to Firebase.

    Expected Results:
    • Research on foss alternatives for Firebase giving considerations to performance and licence
    • Implement an abstraction layer to make it easier to change the database anytime
    • Test database abstraction layer with test cases
    • Write documentation
    • Fix the active issues of the project
    • Make DroneSym a Progressive Web Application (PWA)
    • Deploy DroneSym or produce a deployable output

    Required Knowledge: Angular 2+, Node
    Github: https://github.com/scorelab/DroneSym
    Possible Mentors: Oshan Mudannayake, Lasith, Raveen Perera
  • OpenIoE - Implement user interface for OpenIoE

    Currently, we are using the generated jHipster UI for OpenIoE. We need to implement a customized user interface for providing a better user experience. Angular or React can be used.

    Expected Results:
    • Rewrite the frontend with Angular or React including all current functionalities
    • Re-design the current interfaces
    • Write Frontend unit tests and component tests

    Required Knowledge: Angular or React, Spring Boot, ActiveMQ Artemis, MQTT, AMQP and Cassandra
    Github: https://github.com/scorelab/OpenIoE/issues/28
    Possible Mentors: Tharidu Fernando, Charith
  • OpenIoE - Implement authentication for message broker and rest API for OpenIOE

    Currently, OpenIOE does not implement any security mechanisms for publishing or subscribing to any registered sensors in the backend. In order to support more clients, MQTT authentication and GUID based URL routing can be used.

    Expected Results:
    • Implement authentication for OpenIOE message broker and rest API
    • Write unit tests and component tests
    • Integrate the build and test cases to TravisCI

    Required Knowledge: Spring Boot, ActiveMQ Artemis, MQTT, AMQP and Cassandra
    Github: https://github.com/scorelab/OpenIoE/issues/27
    Possible Mentors: Tharidu Fernando, Charith
  • EtherBeat - Design and implement an analyzing framework on top of EtherBeat

    Implement an analyzing framework which can provide users important information about Ethereum platform. This must utilize existing GraphQL schema to answer the queries. Eg;

    • How many transactions carried out by 'X' address?
    • How much ETH value 'Y' user has transferred last 30 day?
    • Transactions summery for block range
    • More

    Expected Results:
    • Design and implement an EtherBeat analyzing framework
    • Test EtherBeat analyzing framework with test cases
    • Write documentation

    Required Knowledge: GraphQL Js and ReactJs
    Github: https://github.com/scorelab/EtherBeat
    Possible Mentors: Ruwan Geeganage, Tharidu Fernando and Keshan Sodimana
  • OpenPub - Redesign OpenPub publication manager

    OpenPub is a publication manager for individuals and research groups. OpenPub provides research's to upload and share their’s publications with others and get valuable feedbacks for their publications. It also allow users to easily find related resources in different areas and categories.

    Expected Results:
    Required Knowledge: NodeJS, ReactJS
    Github: https://github.com/scorelab/OpenPub
    Possible Mentors: TBD
  • Go Social - Implement Community App Using Go Social Framework

    Propose and develop community app using Go Social Framework. In the proposal you need to provide the app ui design, and use case of the app

    Expected Results:
    Required Knowledge: NodeJS, ReactJS, ReactNative
    Github: https://github.com/scorelab/Go-social
    Possible Mentors: Dinith
  • ChainKeeper - Optimized Blockchain Analytical Interface for ChainKeeper

    Chainkeeper is a web-based application which can be used to retrieve Bitcoin blockchain data via API support from BlockSci core blockchain data. In analytics perspectives, this approach is highly inefficient due to some constraints. Therefore, needs to build a library for ChainKeeper which acts as data and analytical interface for blockchain to retrieve relevant data by writing queries. There should be blockchain supportable classes such as Blockchain, Blocks, Transactions, Input, Output and Address with range support. This library needs to support python with more optimization techniques.

    Expected Results:
    • Evaluate existing blockchain analysis library and identify performance issues
    • Come up with a suitable design to develop an analysis library
    • Implementation of the Analysis Library
    • Evaluation results with terms of data and analysis
    • Documentation of the library

    Required Knowledge: C++, Blockchain, Bitcoin, BlockSci, Python, C++ Boost
    Github: https://github.com/scorelab/ChainKeeper
    Possible Mentors: Isuranga Perera, Sajitha Liyanage
  • ChainKeeper - Optimized Bitcoin blockchain parser for memory constrained devices

    Bitcoin blockchain is a huge data structure with 180+GB in size. Due to this huge size available Bitcoin parsers take several hours to parse the entire blockchain. As an example BlockSci parser takes 11 hours with an 8GB cache. Because of that most of the available Bitcoin parsers are inefficient on memory constrained devices. The goal of this project is to design and implement a Bitcoin parser(may support forks of Bitcoin as well) which can use available memory efficiently to reduce blockchain parsing time on memory constrained devices.

    Expected Results:
    • Evaluate existing Bitcoin parsers and identify performance issues
    • Come up with a suitable strategy to store parsed Bitcoin data
    • Design and implement the parser
    • Evaluation
    • Documentation

    Required Knowledge: C++, Blockchain, Bitcoin
    Github: https://github.com/scorelab/ChainKeeper
    Possible Mentors: Isuranga Perera, Sajitha Liyanage
  • Androphsy(OpenMF) - Redesign Androphsy(OpenMF) backend

    Androphsy(OpenMF) is an opensource forensic tool for Android smartphones that helps digital forensic investigator throughout the life cycle of digital forensic investigation. Services provided by Androphsy includes.

    • Digital forensic case and evidence management
    • Raw data acquisition – physical acquisition and logical – file system level acquisition
    • Meaningful evidence extraction and analysis support
    • Evidence presentation

    Expected Results:
    • Convert Androphsy backend to python
    • Test the implementation
    • Write documentation

    Required Knowledge: Python, Android
    Github: https://github.com/scorelab/OpenMF
    Possible Mentors: TBA

© Copyright 2019 Sustainable Computing Research Group (SCoRe)