This repository contains the Jupyter Notebook for the Tutor-Marked Assignment (TMA) for my ICT233 Data Programming course. The assignment is focused on data manipulation, analysis, and visualization using pandas, SQLite, and SQLAlchemy in the context of managing tasks and teams.
The initial step involves loading tasks and teams data from CSV files, confirming the data, and creating a mapping between the team
column in tasks.csv
and the id
column in teams.csv
.
Utilizing pandas, a DataFrame is computed to capture the number of members per team using the groupby()
function.
The number of members per team is visualized through a histogram using Matplotlib.
State transitions for tasks are extracted and incorporated into the tasks_df
DataFrame, which is then saved to a new CSV file (tasks_df2.csv
).
Functions are defined to compute commitment and velocity. Additionally, a visualization of commitment and velocity per sprint is created using Matplotlib.
A function is implemented to compute the velocity of a team for a given sprint.
A function is defined to calculate and visualize the commitment and velocity of a team across different sprints.
An SQLite database named tasks.db
is created, and the tasks data is stored in a table named tasks
.
A function is implemented to visualize the story points per state for each sprint using Matplotlib.
Functions are defined to compute commitment and velocity using both SQLite with SQL statements and SQLAlchemy ORM. Additionally, functions are created to identify users who have the least number of done story points.
To run the Jupyter Notebook and execute the code, you may download the file and run it locally on your IDE (eg. Visual Studio Code)