Project Plan
Project Plan
We will use Waterfall + Agile project management style, because the overhead for Agile is too much for the
scale of this project. We will implement agile methodologies into our project without having all of the
overhead for the agile process. The project deliverable is code, so using agile for code development will
prove useful for developing bug-free, concise code, that can be prototyped early and often.
What will your group use to track progress throughout the course of this and the next semester. This could
include Git, Github, Trello, Slack or any other tools helpful in project management.
Gitlab will be used since its issues feature is extremely similar to trello and other progress tracking software
and the team is already using it to host our project so it allows us to reduce the amount of apps we are
using. We will also be using Google Colab for machine learning algorithm development. Once milestones
are met on Google Colab, they will be pushed to the Gitlab repository. We are using Discord for day-to-day
communications and progress monitoring.
Frontend:
Backend:
Machine Learning:
● ML: New machine learning algorithm with a higher test set accuracy
○ Research control mechanisms
○ Develop a convolutional neural network in PyTorch
○ Train convolutional neural network
○ 80% accuracy on test set is a good target
● ML: Ensure new deep learning model is not overfitting or underfitting the data
○ Simplify or add layers to neural net as needed based on test set accuracy vs. training set
accuracy
● ML: Segment data into training set, test set, and dev set
○ Understand control mechanisms in order to decide how to segment this data
In an agile development process, these milestones can be refined with successive iterations/sprints (perhaps
a subset of your requirements applicable to those sprints).
Frontend:
Backend:
Machine Learning:
• Most scheduling errors occur as the result of either not properly identifying all of the necessary activities
(tasks and/or subtasks) or not properly estimating the amount of effort required to correctly complete the
activity • A detailed schedule is needed as a part of the plan: – Start with a Gantt chart showing the tasks
(that you developed in 2.2) and associated subtasks versus the proposed project calendar. The Gantt chart
shall be referenced and summarized in the text. – Annotate the Gantt chart with when each project
deliverable will be deliver• Project schedule/Gantt chart can be adapted to Agile or Waterfall development
model. For agile, a sprint schedule with specific technical milestones/requirements/targets will work.
2.5 RISKS AND RISK MANAGEMENT/MITIGATION
Consider for each task what risks exist (certain performance target may not be met; certain tool may not
work as expected) and assign an educated guess of probability for that risk. For any risk factor with a
probability exceeding 0.5, develop a risk mitigation plan. Can you eliminate that task and add another task
or set of tasks that might cost more? Can you buy something off-the-shelf from the market to achieve that
functionality? Can you try an alternative tool, technology, algorithm, or board?
Agile project can associate risks and risk mitigation with each sprint.
● Our team is learning several new technologies including ReactJS, PyTorch, PostgreSQL and the
learning curve could slow development down in the beginning. This will be mitigated by taking
online tutorials and practicing with these environments before project development begins
● As all our work will be done virtually, including using Virtual Machines, any trouble connecting to
the ISU network or the VM’s could slow down progress. This will be mitigated as best possible by
constantly pushing our work so our workspace is always up to date, and letting others know of
connectivity issues.
● Previous team had issues integrating PostgreSQL into the backend. If that issue is still unresolved
we may need to look into using a different database tool.
Frontend
30
Add algorithm selection to the Update main page to display a drop-down list of
main page algorithms to choose from. Selecting an
algorithm will run the simulation with the
selected algorithm
Add Map-based power grid New page will be added for map-based power 50
display grid display. The display will overlay on a virtual
representation of the selected grid area and will
include relevant information such as street
names and city names.
Update output page to display The output page will display the data from the 25
data in a more readable format backend in a much clearer view
Add voltage information of nodes The current grid display page will be updated so 60
to grid display page that when a user clicks on a node, voltage
information for that node will be displayed
above the node
Add user registration and store A user registration page will be added where 30
them in the database new users may set up a profile page so that
their data can be saved upon login. This will be
implemented on the backend as well.
Information stored will include name, email,
password, and last session data
10
Increase readability for future Add good comments to code. Update the
teams README to explain more of the structure,
functionality, and why certain decisions were
made. Include more comments to commits to
show why decisions were made
Backend
65
Fix issues related to PostgreSQL Backend should be able to easily fetch and
connection update data that is currently on the server.The
data fetched should also be quickly transferred
to wherever it is needed on the frontend.
Person hours on this task will also have to be
spent on researching PostgreSQL and how it
connects to Django.
85
Increase readability for future Documentation and comments on the apis.
teams Increase the amount of helper functions in the
api to make code more readable. Rename
variables to properly show what they
represent. This time is variable depending on
how the machine learning team rewrites the
algorithms necessary for the ML api to work.
Machine Learning
Segment data into different sets We will need to segment the data into a 20
training set, tests set, and development sets.
This will allow us to better organize our data
to efficiently train our algorithm
● PowerCyber workbench and virtual machines provided by client / advisor Dr. Ravikumar
● Google Cloud platform
● Real time data for the ML algorithms
● Documentation provided by sdmay21-24 and Dr. Ravikumar