Skip to content
Merged
230 changes: 137 additions & 93 deletions docs/projMngmnt/Rev0_Team_Contrib.tex
Original file line number Diff line number Diff line change
Expand Up @@ -24,140 +24,164 @@

\section{Demo Plans}

\wss{What will you be demonstrating}
For our \textbf{Rev 0 demonstration}, we will showcase the core functionality and usability of our \textbf{energy-efficient Python code refactoring tool}. This demonstration will highlight the following key aspects:

\begin{enumerate}

\item \textbf{Code Smell Detection:} We will demonstrate how our tool identifies inefficient coding patterns (\textit{code smells}) in Python source code that contribute to higher energy consumption.
\item \textbf{Automated Refactoring:} Our tool will apply targeted refactorings to optimize the detected code smells, improving energy efficiency.
\item \textbf{Energy Consumption Measurement:} Using \texttt{CodeCarbon}, we will measure and compare the energy consumption of the original code versus the refactored version, providing clear insights into energy savings.
\item \textbf{Functionality Preservation:} To ensure that optimizations do not alter program behaviour, we will run the original test suite against both the unoptimized and refactored versions.
\item \textbf{VS Code Integration:} We will showcase our \textbf{VS Code plugin}, where users can analyze a Python file for code smells, choose specific optimizations, and preview the refactored code with energy measurements. Users will have the option to accept or reject the proposed changes.

\end{enumerate}

\section{Team Meeting Attendance}

Our team stays in touch regularly through Discord and schedules a
meeting when detailed discussion is needed. Below is the attendance
of all format meetings that have taken place.

\wss{For each team member how many team meetings have they attended over the
time period of interest. This number should be determined from the meeting
issues in the team's repo. The first entry in the table should be the total
time period of interest. This number should be determined from the meeting
issues in the team's repo. The first entry in the table should be the total
number of team meetings held by the team.}

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Meetings}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
\bottomrule
\end{tabular}
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Meetings}\\
\midrule
Total & 3\\
Sevhena Walker & 3\\
Mya Hussain & 3\\
Ayushi Amin & 3\\
Nivetha Kuruparan & 3\\
Tanveer Brar & 3\\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here.}

\section{Supervisor/Stakeholder Meeting Attendance}

\wss{For each team member how many supervisor/stakeholder team meetings have
they attended over the time period of interest. This number should be determined
from the supervisor meeting issues in the team's repo. The first entry in the
table should be the total number of supervisor and team meetings held by the
team. If there is no supervisor, there will usually be meetings with
they attended over the time period of interest. This number should
be determined
from the supervisor meeting issues in the team's repo. The first entry in the
table should be the total number of supervisor and team meetings held by the
team. If there is no supervisor, there will usually be meetings with
stakeholders (potential users) that can serve a similar purpose.}

We prioritize having in person meetings with our supervisor Dr David
to be able to effectively communicate our progress and concerns. We
have a weekly slot open with the supervisor, but in case there is
little to discuss, the meeting is cancelled for the week and our
progress is communicated via Discord.

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Meetings}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
\bottomrule
\end{tabular}
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Meetings}\\
\midrule
Total & 4\\
Sevhena Walker & 4\\
Mya Hussain & 4\\
Ayushi Amin & 4\\
Nivetha Kuruparan & 4\\
Tanveer Brar & 4\\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here.}

\section{Lecture Attendance}

We aim to have at least one person attend the lecture so the team is
upto date with all information. In the rare case that no one goes to
the lecture, we update through the lecture slides.

\wss{For each team member how many lectures have they attended over the time
period of interest. This number should be determined from the lecture issues in
the team's repo. The first entry in the table should be the total number of
period of interest. This number should be determined from the
lecture issues in
the team's repo. The first entry in the table should be the total number of
lectures since the beginning of the term.}

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Lectures}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
\bottomrule
\end{tabular}
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Lectures}\\
\midrule
Total & 2\\
Sevhena Walker & 1\\
Mya Hussain & 0\\
Ayushi Amin & 0\\
Nivetha Kuruparan & 0\\
Tanveer Brar & 0\\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the lecture attendance can be provided here.}

\section{TA Document Discussion Attendance}

\wss{For each team member how many of the informal document discussion meetings
with the TA were attended over the time period of interest.}

\begin{table}[H]
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Lectures}\\
\midrule
Total & Num\\
Name 1 & Num\\
Name 2 & Num\\
Name 3 & Num\\
Name 4 & Num\\
Name 5 & Num\\
\bottomrule
\end{tabular}
\centering
\begin{tabular}{ll}
\toprule
\textbf{Student} & \textbf{Lectures}\\
\midrule
Total & 2\\
Sevhena Walker & 2 \\
Mya Hussain & 2 \\
Ayushi Amin & 2 \\
Nivetha Kuruparan & 2 \\
Tanveer Brar & 2 \\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the attendance can be provided here.}

\section{Commits}

\wss{For each team member how many commits to the main branch have been made
over the time period of interest. The total is the total number of commits for
the entire team since the beginning of the term. The percentage is the
over the time period of interest. The total is the total number of
commits for
the entire team since the beginning of the term. The percentage is the
percentage of the total commits made by each team member.}

\begin{table}[H]
\centering
\begin{tabular}{lll}
\toprule
\textbf{Student} & \textbf{Commits} & \textbf{Percent}\\
\midrule
Total & Num & 100\% \\
Name 1 & Num & \% \\
Name 2 & Num & \% \\
Name 3 & Num & \% \\
Name 4 & Num & \% \\
Name 5 & Num & \% \\
\bottomrule
\end{tabular}
\centering
\begin{tabular}{lll}
\toprule
\textbf{Student} & \textbf{Commits} & \textbf{Percent}\\
\midrule
Total & 662 & 100\% \\
Sevhena Walker & 277 & 41.8429\% \\
Mya Hussain & 78 & 11.782485\% \\
Ayushi Amin & 129 & 19.4864\% \\
Nivetha Kuruparan & 102 & 15.407855\% \\
Tanveer Brar & 76 & 11.48036\% \\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here. For
instance, if a team member has more commits to unmerged branches, these numbers
can be provided here. If multiple people contribute to a commit, git allows for
multi-author commits.}
The number of commits does not necessarily reflect the amount of work done by each team member. Some members prefer to make frequent small commits while others make fewer but larger commits that include multiple changes.

\section{Issue Tracker}

\wss{For each team member how many issues have they authored (including open and
closed issues (O+C)) and how many have they been assigned (only counting closed
closed issues (O+C)) and how many have they been assigned (only
counting closed
issues (C only)) over the time period of interest.}

\begin{table}[H]
Expand All @@ -166,22 +190,42 @@ \section{Issue Tracker}
\toprule
\textbf{Student} & \textbf{Authored (O+C)} & \textbf{Assigned (C only)}\\
\midrule
Name 1 & Num & Num \\
Name 2 & Num & Num \\
Name 3 & Num & Num \\
Name 4 & Num & Num \\
Name 5 & Num & Num \\
Tanveer Brar & 1 & 47 \\
Mya Hussain & 8 & 51 \\
Ayushi Amin & 8 & 58 \\
Sevhena Walker & 81 & 72 \\
Nivetha Kuruparan & 17 & 53 \\
\bottomrule
\end{tabular}
\end{table}

\wss{If needed, an explanation for the counts can be provided here.}

Counts are considered by taking the total counts over the year and subtracting the counts at the time of the POC Team Contribution. This is the period of intrest.
We did a lot of work over the winter break to exclude that period and only do "this term" would inaccurately represent the counts.
\section{CICD}

\wss{Say how CICD is used in your project}

\wss{If your team has additional metrics of productivity, please feel free to
add them to this report.}

\end{document}
CI/CD was implemented in the project to automate essential
development and documentation tasks, improving efficiency and
maintaining code quality. The project utilises GitHub Actions
workflows to enforce coding standards, validate changes, and ensure
documentation integrity.

A dedicated workflow formats and compiles \LaTeX{} documents whenever
changes are made to \texttt{.tex} files or their dependencies. This ensures that
only high quality documentation is pushed to the main branch.

Another workflow is responsible for maintaining code consistency and
adhering to best practices. It uses \texttt{ruff} to lint and format
\texttt{.py} files, identifying potential issues such as syntax
errors, unused imports, and style inconsistencies. This workflow
allows the python scripts to be written with a uniform coding style.

The final workflow ensures the correctness of the codebase. It runs
\texttt{pytest} to execute unit and integration tests, validating the
expected behaviour of the software. Additionally, it includes a code
coverage check, ensuring that newly introduced or modified code is
adequately tested. This helps prevent regressions and maintain the
reliability of the project.

\end{document}