Difference between revisions of "GSOC 2016 Ideas"

From SatNOGS
(GSOC 2016 Ideas)
(No difference)

Revision as of 13:50, 26 August 2017

These ideas were contributed by our developers and users for [Google Summer of Code 2016](https://summerofcode.withgoogle.com). Some of them may be rough. If you wish to submit a proposal based on these ideas, you may wish to contact the developers and find out more about the particular suggestion you're looking at. Students are welcome to provide their own ideas for projects in collaboration with the SatNOGS developer community.

The major communication and coordination systems of the SatNOGS project are it's [forum](http://community.satnogs.org) and it's [github repositories](http://github.com/satnogs).

Instructions

==

Students wishing to participate in Summer of Code must realise this is more than a mere formality. You will be required to produce code for Libre Space Foundation projects in 3 months.

You don't have to be a proven developer -- in fact, this whole program is meant to facilitate joining Open Source communities. However, experience in coding and/or experience with Python libraries and applications is welcome.

You should start familiarizing yourself with the components that you plan on working on before the start date. LSF developers are available on the community site and on IRC for help. Recommended steps

=

* Read Google's instructions for participating
* Take a look at the list of ideas
* Come up with project that you're interested in
* Write a first draft proposal and get someone to review it for you
* Submit it using Google's web interface 

Check the KDE's [Student Proposal Guidelines](https://community.kde.org/GSoC#Student_proposal_guidelines) for more hints on what your application should look like.

Coming up with an interesting idea is probably the most difficult part of all. It should be something interesting for **LSF**, for **Open Source in Space** and particularly for **you**.

Finding out what the most pressing issues are in the projects you're interested in is a good start.Learning the codebase and even submitting issues and identifying bugs is also a good way to start. We recommend strongly doing that and we will look favorably on applications from students who have started to act like Open Source developers.

  1. Software Projects
    1. [SatNOGS Network](https://github.com/satnogs/satnogs-network)
      1. Data Dashboards using SatNOGS observation data/metadata
  • **Description** Supply an overview of the observation data/metadata collected instead of the detailed view currently available
  • **Skills needed** Django/Python , HTML, CSS3, Javascript
  • **Expected results** Create standards based user facing dashboards for SatNOGS recorded data and metadata to provide an overview of a SatNOGS observation.
  • **Mentor**: @comzeradd
      1. Concatenate observational data
  • **Description**: An observer should be able to access a concatenated view of an observation that is calculated (and compiled) by multiple data from different ground stations. Still SatNOGS Network must be able to provide a single url page for a single observation part (ie by one ground station pass).
  • **Skills needed**: Django/Python, HTML, CSS3, Javascript.
  • **Expected results**: Single URL for a single observation part to allow sharing of data, page must be accessible in all modern browsers
  • **Mentor**: @comzeradd
    1. [SatNOGS Client](https://github.com/satnogs/satnogs-client)
      1. Build a web based controller able to control the SatNOGS client
  • **Description**: Expand the current web interface of satnogs-client with a web based controller to allow users to connect to their rotator using a browser without the need to connect to the internet.
  • **Skills needed**: Python, Flask
  • **Expected results**: An embeddable web application able to control SatNOGS client via a web browser
  • **Mentor**: @jinxcat
      1. Package SatNOGS client for different distributions
  • **Description**: SatNOGS client must be available in a binary package form for several distributions to further it's ease of modularity.
  • **Skills needed**: Packaging on major distributions.
  • **Expected results**: Released and submitted upstream packages on major distributions.
  • **Mentor**: @axilleas
    1. SatNOGS Infrastructure
      1. Improve logging and monitoring
  • **Description**: Improve SatNOGS logging and monitoring capabilities to allow SatNOGS Network to monitor which ground station are operating properly
  • **Skills needed**: DevOps, DB and Sysadmin skills, open to technology suggestions
  • **Expected results**: Logs and Monitoring capabilities for the Network administrators
  • **Mentor**: @axilleas
      1. Improve distributed storage of observation data
  • **Description**: SatNOGS observation data must be able to be stored in a distributed manner
  • **Skills needed**: DevOps, DB and Sysadmin skills, open to technology suggestions
  • **Expected results**: A distributed storage option for observation data
  • **Mentor**: @jinxcat
      1. Add error rate and karma policies for SatNOGS clients
  • **Description**: SatNOGS clients should be able to use error rate and karma policies in order to prioritize observation jobs.
  • **Skills needed**: DevOps, DB and Sysadmin skills, open to technology suggestions
  • **Expected results**: Error and karma policies applied to observation job prioritization
  • **Mentor**: @jinxcat
    1. [Diactoros Firmware](https://github.com/librespacefoundation/diactoros)
      1. Enhance diactoros firmware
  • **Description** Implement baud rate negotiation for ground-satellite communications based on link status
  • **Skills needed** C, RF
  • **Expected results**: Significant improvement in data rate of satellite to ground communications
  • **Mentor**: @manostheodoridis
  1. [SatNOGS Hardware](https://github.com/satnogs/satnogs-hardware)
    1. [SatNOGS Arduino](https://github.com/satnogs/satnogs-arduino)
      1. Closed loop system with feedback (encoders, stepper motors)
  • **Description**: Design a closed loop system with positioning feedback, based on the existing tracker design, as an alternative to the current setup.
  • **Skills needed**: Electronics, Arduino, PID tuning, Encoder circuits
  • **Expected results**: Schematic, routing, board design, Arduino software that implements it and preferably a working prototype.
  • **Mentor**: @zisi
      1. Design and implement a stand alone open source stepper controller
  • **Description**: Create a stand alone open source stepper controller to modularize our electronics. Use an established protocol to communicate with our microprocessor (e.g. I2C).
  • **Skills needed**: Electronics, Arduino, Stepper controllers, I2C ,SPI or 1Wire
  • **Expected results**: Schematic, routing, board design, Arduino software that implements it and preferably a working prototype.
  • **Mentor**: @zisi
      1. Arduino Firmware restructure with tests and fixes
  • **Description**: Rewriting the current Arduino firmware to resolve overflow errors and implement tests for extreme conditions and use cases.
  • **Skills needed**: Arduino, Embedded programming, Embedded debugging, Algorithm Design
  • **Expected results**: A new Arduino firmware with less function overflow errors compared to the current and tests.
  • **Mentor**: @zisi
      1. Optimize rotor movement algorithm
  • **Description**: Implement an improved and optimized rotor movement algorithm, to minimize path (length and time), apply tracking continuity (on extreme points) and apply instrumental limitations (cable twisting, horizon limits, extreme points, extreme conditions)
  • **Skills needed**: Arduino, Embedded programming, Algorithm Design
  • **Expected results**: Arduino code that implements the use cases on description.
  • **Mentor**: @papamat
      1. Homing and setup bootstrap functions, testing functions
  • **Description**: Design and implement a setup bootstrapping (first-run) and testing of ground station suite.
  • **Skills needed**: Arduino, Embedded programming, Algorithm Design
  • **Expected results**: Arduino code that implements the use cases on description.
  • **Mentor**: @zisi