-
Notifications
You must be signed in to change notification settings - Fork 71
GSoC Ideas Page
This is the home page of projects ideas of Orchestra for Google Summer of Code 2021.
Orchestra is a Robotic Process Automation system for orchestrating project teams of experts and machines. Projects can include everything from design teams working on a client's project to newsrooms bringing together reporters, photographers, and editors for a story. In Orchestra workflows, you can assign senior experts to review other experts in order to provide feedback and iteratively refine the work. Orchestra also brings machines and automation onto projects: a crawler can collect content from the web before an expert combs through it, or a classifier can filter out bad data so an analyst spends less time in the noise. New workflows can be added with some simple python glue and an HTML interface.
To learn more about Orchestra with some examples and a getting started guide, or to reach out to the Orchestra team, take a look at some of these resources:
- Orchestra website
- A blog post introducing Orchestra v0.1.0 to the world
- Subscribe to the Orchestra mailing list
Orchestra has also been used in research projects (see publications).
To be considered as a GSoC student, we ask you to make a small pull request to the orchestra
repo - could be a simple bug fix, improving the documentation, etc. See e.g. "starter project" GitHub issues.
Intermediate
Orchestra provides a python library that provides a wide range of functionalities, from supporting automated repetitive, rules-based project tasks to support for automated staffing and project coordination (see our documentation for example use case). Currently, the interface for interacting with the Orchestra’s project management and task details view are exposed through an independent web application implemented in Orchestra. The only way for web platforms to extend Orchestra is through our APIs.
This project focuses on making Orchestra front-end components extensible through Javascript library. This feature will allow web platforms to integrate with Orchestra without any need to build custom front-end components on top of our APIs.
In this project, you will be expected to set up the initial infrastructure to make Orchestra’s front-end components extensible through a javascript library. Specifically, you will be required to expose the Todolist
component (already implemented) through the library. You will also be required to implement an example project which uses this Todolist component using this library.
For particularly motivated students, there are exciting stretch goals available (not required/expected): Option 1: Expose the Todolists QA interface that allows reviewers to provide contextual feedback. Just like, the TodoLists component the QA interface is also already implemented and the goal of this task is to make it extensible. Option 2: Implement an interface for editing todos
Essential skills: Python, Angular/React, HTML
Nice to have skills: familiarity with web frameworks like django or flask
Easy
Orchestra uses to-do lists (or checklists) to reduce mistakes by reminding workers about important to-do items to complete a task. In these to-do lists, related items are grouped and hierarchically nested. At the start of each project, a to-do list self-prunes to remove irrelevant to-do items based on some pre-defined conditions. This automation allows the to-do lists to adapt to dynamically changing project requirements. Currently, this automation step happens only at the start of a project.
SanityBot is an automation tool in Orchestra that periodically monitors the state of a project and alerts team members if something seems off. It runs sanity checks every few minutes based on various aspects of project status to determine what’s on track and what’s at risk. For example: If you’re close to missing a major deadline, SanityBot will alert team members via Slack that the project conditions aren’t being met. SanityBot can’t solve problems, but it makes it easier to identify them so you can scale your attention across more projects.
In this project, you will be required to add implementation that will allow SanityBot to automatically create, remove, or check-off to-dos. This will allow SanityBot to manage project requirements at a micro-task level (to-dos). For example, if a to-do has not been completed by its due date, we want the ability to automatically create new to-dos that can guide the workers through the escalation management steps.
In this project, you will be expected to 1) implement a way to semantically name and reference to-dos and 2) create, remove, and check-off to-dos using SanityBot. You will also be required to implement an example project that shows how SanityBot can be configured to check-off to-dos.
For particularly motivated students, there are exciting stretch goals available (not required/expected): Option 1: Implement a user interface to configure SanityBot to To-do mapping.
Essential skills: Python
Nice to have skills: familiarity with django and angular
Easy
One of the important goals on our development roadmap is to modernize the Orchestra front-end components. Currently, our front-end codebase uses Angular2. With the increasing adoption of ReactJS, we would like to start using React-based codebase by leveraging the modernized easy-to-use components exposed by an open-source library called metronome.
In this project, you will be required to migrate the front-end code from Angular to ReactJS piece by piece. Your primary goal will be to implement the Task management pane.
In this project, your primary goal will be to specifically modernize the Task management pane.
Stretch goal for exceptional students (not required/expected): modernize other components like available tasks, time card, etc.
Essential skills: Javascript, React
Nice to have skills: Angular, Python
Intermediate
Project Management page in Orchestra allows project managers to oversee a project by visualizing the progress made on the series of interconnected tasks in a project. Currently, the project management page looks outdated by current UX standards and needs a revamp. Also, certain functionalities need to be optimized as well. For example, the dropdown search option on the Project Management page gets extremely slow as the number of projects increase in the database. Additionally, the only way to navigate from the Project Management page to task view is by copying the task id and changing the URL. There are a lot of functional elements like these which need some re-optimization and revamp.
In this project, you will be required to improve the aesthetics and functionality of the Project Management page in Orchestra. The project will involve implementation of new features, fixing up most of the high priority issues and refactoring code for Project Management page.
Stretch goal for exceptional students (not required/expected): modernize project management view using metronome.
Essential skills: Python, Javascript, HTML
Nice to have skills: React/Angular
Easy
Currently, Orchestra does not have any interactive tutorial or onboarding experience to introduce new users to its features. Moreover, the documentation hasn't been able to keep up with the new features and is more catered towards a developer community. It is hard for non-technical users to understand how to use Orchestra.
In this project, you will be required to implement a user-friendly step-by-step onboarding experience. You will be using javascript libraries like IntroJs or Bootstrap Tour to build an interactive tutorial. You will also need to add an example project to use for onboarding purpose. The onboarding experience should introduce new users to important Orchestra features and educate on how to use them.
Stretch goal for exceptional students (not required/expected): Add functionality to onboard existing users to new features.
Essential skills: Python, Javascript, HTML Nice to have skills: React/Angular
We encourage students to play around with the Orchestra software, browse Orchestra's Github issues enhancements that seem critical, and suggest ideas you would like to work on. If your project idea, combines 3-5 significant features, we are willing to consider it.
Depends on the project!