Skip to content

Google Summer of Code 2019

Siddhant Srivastav edited this page Feb 12, 2019 · 7 revisions

Thank you so much for showing interest in Cynthesize! Cynthesize plans to participate as an organisation in Google Summer of Code 2019. Cynthesize is working to create an ecosystem allowing you to leverage the power of communities for creating full fledged projects as well as sharing and discussing ideas.

Our project ideas are centered around improving user experience as well as adding a number of features we believe will make Cynthesize as useful as possible for a number of people. All of our projects have equal importance, and are equally probable to help you get through the selection process. We request you to go through them all and discuss your thoughts on the Gitter channel or the mailing list with the maintainers!

Somethings that might help you as a student

Get Involved

We have a number of ways in which you can help us out, from fixing small issues to working on larger feature codebases. If you’re new to our codebase, fret not - we’re always available on Gitter or Slack to help you out! We are always on the lookout for driven contributors who can be relied on. We’re hoping this will be a two-way learning experience!

Before drive, we look for passion - we need more people who are willing to work on creating an ecosystem which makes developing your own product more intuitive and involved. If this happens to be your first open-source contribution, we are willing to go all the way in providing support and mentorship.

We suggest looking at good first issues to get an idea of the kinds of problems we deal with regularly. If any of these interest you, do let us know!

Cynthesize is looking for front-end developers in Angular and Hasura+GraphQL developers for the backend. If you’re new to any of these, let the maintainers of the various repos know, and they’ll be more than happy to guide you through any problems you may run into.

Reach out to us at cynthesize.tech@gmail.com if you still have any residual doubts that need to be solved, or in case you don’t receive a satisfactory answer on the other communication channels. You can contact us on our Gitter Channel or reach out to us on our official mailing list

FAQs about us

Q1. What do you need to know to get started with us?

A. Cynthesize, being a fresh organisation, works on the latest tech i.e. Angular 7 and Hasura's GraphQL. Angular 7 exists in the development framework whereas Hasura's endpoints are deployed. You may need to have a little knowledge of writing GraphQL queries/mutations/subscription. Apart from the stated, HTML CSS and simple knowledge of JS would help you get started. Please explore our wiki page for more info.

Q2. What do I need to do to get selected?

A. Writing a good project proposal, engaging with the community, helping other students, successfully contributing patches, and demonstrating that you can work independently can all help you. We've also compiled some notes below on the selection criteria we'll be using.

Q3. What projects should I start with?

A. All the projects at Cynthesize are important to us and should suffice with minimal experience to get started. Other than these, we're open to new outlook on the project and the features you want to add.

Selection Criteria

In order to select students for GSoC, we will mainly be looking at three things:

  • The quality of the submitted proposal
  • The quality of the applicant's previously-submitted PRs (in order to assess their ability to code, debug, break down complex tasks, etc.). Note that quantity isn't a prerequisite in itself, though contributors who've submitted multiple PRs are likely to have had more opportunities to demonstrate the abilities needed to succeed in GSoC.
  • Our prior experience working with the student (e.g. do they keep commitments, communicate well, demonstrate independence/initiative/responsiveness, help others, etc.)

GSoC Proposal Template

We've put together a GSoC Proposal Template and would love if you take a look at it. This is a template we propose but following the exact pattern is not required. We just want to make sure that whatever you know about the project should appear in the proposal so that we could provide a fair judging

Ideas for Google Summer of Code 2019 Projects

These are list of ideas that we have found to be interesting and needs to be worked upon. Other than the said list of ideas, we'll be organising sessions and get input from the contributors and students to include further projects. Also, if you think of any potential idea that could be implemented. Let us know on our Gitter channel or on our mailing list

Improvements in codebase and developer experience

Mentors: @adeora7 @scoppiare99

Difficulty: Medium

Prerequisites: Angular, Writing tests, Python

This project is geared towards adding a number of features to the code itself making it easier for developers to contribute, and improve the quality of the code being pushed as well. These features include:

  • Wrapping the entire codebase in unit tests and E2E tests.
  • Authenticated queries with secure endpoint calls to GraphQL engine.
  • Write scripts for linting, automating migrations, automation developer workflow.
  • Adding analytics to the entire website flow, from registration to every project that uses our platform and the entire idea feed.
  • Writing scripts for production build.
  • Adding a Continuous Integration pipeline to the codebase
  • More suggestions regarding improvements in the codebase and development process are definitely appreciated above and beyond the points suggested above.

Gamification of the project development platform

Mentors: @agbilotia1998 @adeora7

Difficulty: Medium

Prerequisites: Angular, GraphQL, JavaScript, HTML, CSS.

This project is comprehensive in nature, meaning all parts of the codebase that are present will be affected in some form or the other by this. Cynthesize plans to add gamification features to the project development platform. This platform will divide each project into a number of stages (pre-decided or done by an expert), along with a number of checkpoints.

These checkpoints will then be regularly monitored by mentors, who will be giving expert comments and suggestions regarding the current status. Once these stages have been met to the satisfaction of the expert, the project will move on to the next level and certain number of points will be given to the project developers based on their contribution. These points will be available in the public domain in the form of a leaderboard, which is planned to have prizes for streaks (e.g. if a particular person stays on top for a week, they get some prizes).

The main focus of the project is to add both the user-end functionalities in Angular as well as using Hasura and GraphQL in order to implement at least a functioning beta of the entire system.

Feature improvements to the Cynthesize platform

Mentors: @scoppiare99 @WickedBrat

Difficulty: Easy

Prerequisites: Angular, APIs

There are a number of features which would improve the workflow of those building their projects with the help of Cynthesize. These features include:

  • Making use of latest style guide.
  • Fixing bugs throughout the platform.
  • Adding GitHub API to monitor project status via the Cynthesize platform
  • Integrating Trello and Slack into the Cythesize project workflow
  • Enable semantic tagging of the projects based on their codebase and their descriptions

Experimental features

Mentors: @WickedBrat @agbilotia1998

Difficulty:: Hard

Prerequisites: GraphQL, Angular, HTML, CSS

Since Cynthesize is very young, we’re open to expanding our platform to other verticals besides developer projects, most importantly for researchers. Researchers still do not have a well-defined task management infrastructure, and hence, we would like to build upon the current codebase and create a new category of research-based projects different from usual developer projects. This creates further needs for the project addition mechanism to be generalised across various categories of projects. Your would also involve:

  • Refactoring the codebase for division of categories of the project.
  • Defining and modifying interaction of users with the platform.
  • Distributing user roles and dependent functionalities.

In case of queries or doubts, feel free to ask questions on our Gitter channel or the mailing list!