Open Source Project - "Implementation / Testing"
In this project, we will be working with a large codebase to test your implementation and testing skills from the SDLC. You will be contributing to a chosen open source project, and your professionalism, progress, communication, and implementation will be graded.
Due Date: Nov 30, 2025, 8:59:59 PM
Introduction
In today's data-driven world, the ability to explore, visualize, and share insights from large datasets is crucial for businesses and organizations. This is where Business Intelligence (BI) and data visualization tools come into play. These platforms allow users to connect to various data sources, create interactive dashboards, and perform complex data analysis without writing code.
One of the leading open-source projects in this space is Apache Superset, a modern data exploration and visualization platform. Originally created at Airbnb, Superset is now a top-level Apache Software Foundation project. It is designed to be intuitive, scalable, and feature-rich, enabling users to build everything from simple charts to complex, interactive dashboards.
Superset empowers users to:
- Connect to a wide array of SQL-speaking databases.
- Explore data through a rich set of visualizations.
- Create and share interactive and collaborative dashboards.
- Utilize a lightweight semantic layer for defining custom dimensions and metrics.
Apache Superset
Superset is a large, enterprise-ready BI web application built primarily in Python and TypeScript (React). It provides the core components for data exploration, visualization, and dashboarding. Contributing to a project like Superset offers a fantastic opportunity to work with modern data engineering tools and web development frameworks.
This semester, you and your team will be contributing to Apache Superset. The main repository you will be working with is:
- https://github.com/apache/superset (Python & TypeScript)
Identifying and Analyzing the Issue (40%)
This part of the project is due on your tutorial in Week of October 16th.
Your team will identify 1-2 issues to work on. Although we will attempt to grade your work on both issues, we will only take the best one for your final grade. You can find outstanding issues on the official GitHub repository:
As a general rule of thumb, consider these issues ineligible for this project.
- Documentation-only or non-code-related issues.
- Trivial quality-of-life enhancements that do not affect general functionality.
Note that although docs only contributions will probably not be acceptable, contributing to docs infrastructure (the tooling that generates the documentation) may be a valid contribution.
Task: Verify with your TA that your issue satisfies course requirements.
You should take a look at the official Superset contributing guide to understand their development workflow and review process:
After identifying an issue, you must come up with an intended solution with pseudo-code and outline the files that you may need to change or create. You must include enough detail to convince the TA that the approach is feasible and non-trivial. Furthermore, you should discuss your intended solution with the community to get feedback. Please include screenshots of your discussions (e.g., on the GitHub issue or the community Slack) in your submission.
Task: Submit an implementation plan to the TA on the Google Doc provided.
You will be graded on the following items:
- Your intended solution
- Your discussions with the community
You can refer to this example for the expectations of analysis and proposal.
Pull Request to Superset (40%)
Note: This part of the project is due on November 30th.
It’s time to turn your plan into reality. One member of your team must fork the Superset repo and create a new branch to start working on the solution.
It is recommended that you start implementing as soon as possible and have a draft PR to leave time for the maintainers to leave their comments.
You will be graded on the following items:
- Pull request documentation
- Git best practices
- Implementation
- Testing methods
- Possibility of PR being merged
It may be possible that the maintainers will tell you that your PR is not mergeable due to various reasons. This is why you would want to choose multiple issues to work on at the beginning.
Note that you may attempt this part of the project multiple times.
Professionalism and Progress (20%)
One major part of contributing to open source is the interaction with the community and the repo contributors. In the sea of open pull requests, your team should campaign for your pull request to be looked at or commented on, while maintaining professionalism.
Remember you are representing yourself, and the University of Toronto. Please keep your community interactions professional.
If your pull request is merged, either you are lucky, you finished early, or you spent effort in getting yourself noticed. Therefore, you will automatically get 20% for free. However, if we see that you have been unprofessional in your interactions, we may deduct marks. Unprofessional behavior includes but is not limited to:
- Spamming the maintainers with merge requests
- Being rude
- Not following the maintainers' instructions
- Not following the community guidelines
If your pull request is not merged, I mostly attribute it to unluckiness. However, you may still be eligible to get full marks if you can demonstrate the following:
- Provide sufficient evidence to the TA of your professional and timely interaction with the community, such as on Github and the Apache Superset Slack.
- Professionalism in the interaction
Last-minute interactions with the community will not be considered sufficient documentation.
Bonus (up to 10% of final course grade)
Unless otherwise stated in the team agreement, all members will be given a bonus from 1%-10% (depending on the effort required to develop the solution) given that your pull request is merged by the maintainers.
The percentage bonus is determined solely by the course instructors. If your pull request is merged after the course ends (up to a period of 1 year), we will retroactively modify your grade.
Contribution Factor
Unless otherwise stated in the team agreement, all members will receive a contribution factor of 1, regardless of their actual contribution.