diff --git a/docs/projMngmnt/Rev0_Team_Contrib.tex b/docs/projMngmnt/Rev0_Team_Contrib.tex index 47167b00..efe3fda8 100644 --- a/docs/projMngmnt/Rev0_Team_Contrib.tex +++ b/docs/projMngmnt/Rev0_Team_Contrib.tex @@ -24,29 +24,43 @@ \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.} @@ -54,74 +68,85 @@ \section{Team Meeting Attendance} \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.} @@ -129,35 +154,34 @@ \section{TA Document Discussion Attendance} \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] @@ -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} \ No newline at end of file +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}