Weekly Project Updates - CappyStone/ProjectCapybara GitHub Wiki
Week of Jan 11 2022
Skyla:
- Added several competitor analysis documentation to ongoing competitor document
- Able to identify key features that all our competitors have
- Created a document detailing government incentives for going green
- Disclosed conflict of interest to professor and reorganized customer and advisory positions
- Still need to talk to Justin about deploying starter webapp to cloud
- Participated in team planning meeting and created scrum framework and tooling
Greg:
- Found link to power consumption database.
- Combed through government incentives lists for applicable information to our idea.
- Found document outlining Canada's current Green plan
- Still need to look into foreign ESG policies.
Elise:
- Created competitor analysis document outlining different features provided by Canadian and international companies to scope out competition
- Created an email template to send out to small business for product testing purposes
- Created a document providing useful resources on Greenhouse Gas Emissions and Diversity Hiring toolkits for dashboard guidelines
- Reached out to 2 companies for testing purposes
- Participated in team planning meeting
Max:
- Contacted Carley (@theurbanelement) to confirm her participation as a testing customer, need to revisit and set up a meeting sometime this week to “onboard” onto the project.
- Added milestones defined on the trello board into github repo as issues for easier tracking of what’s done on the dev side
- Looking into testing frameworks to automate our QA process when we start more development.
- Participated in team planning meetings.
Justin:
- Looked into more upcoming/in-progress EU regulations
- Researched competing software
- Started work on the React client
- Set up the dev branch for the React client
- Met with Mustafa, briefly discussed some useful features for the app
Ahmad:
- Created canadian government climate plan document to better understand current legislation
- Contacted two contracting/consulting businesses via phone to onboard product testers and advisors
- Still need to contact uOttawa environmental law team
- Still need to make document highlighting future legislation affecting small to medium business
- Participated in team planning meetings
Week of Jan 18 2022
Skyla:
- Deployed client on the cloud
- Deployed server on the cloud
- created a weborigin file for the server to make it work
- Worked with justin throughout the week to get the client and server connected and talking to each other
- migrated documents to github wiki
- worked with Database team to explore database hosting options --> settled on either cosmos db or azure sql
- assisted in the creation of the database schema for project
Greg:
- Created database schema with Ahmad and Elise and have a schema diagram.
- Worked with Skyla and Justin to deploy Node server, discovered how to add guest users to external Azure directory (Not uOttawa).
- Created local testing file with Selenium to click on 'Login with Google' button.
- Called Max and introduced him to testing with Selenium so we could test Safari's browser on a Mac.
Elise:
- Conceptualized and designed schema for database with Greg & Ahmad: discussed tables, variables, keys and relations and built a schema diagram
- Added Milestones to Github and restructured Issues
- Researched datasets for efficiency of household/office products with Greg & Ahmad
Max:
- Worked on developing the style guide for us, colour palette, making mockups of various pages that could exist.
- Called with Greg to discuss Selenium testing for front-end testing (I will be creating and running the safari front-end test).
- Re-emailed Carley (might be getting drowned out by her various coffee shop setups).
- Quickly assisted with DB meeting, to settle a design idea.
Justin:
- Investigated the use of Firebase Authentication for sign-in, as well as best practices to allow logged in users to access/edit their data on our server
- Added a basic login component, using Firebase Authentication
- Investigated the addition of a Node server to the project and came up with a solution that would allow for additional clients in the future (mobile, etc)
- Reorganized the client repo, created a repo for the server, created a new project repo
- Created a Node server (using Express) and helped deploy it with Skyla and Greg. Tears were shed by all parties involved during this step.
- Successfully connected the React client with the Node server
- Migrated the Wiki to the ProjectCapybara repo, finishing the repo reorganization
Ahmad:
- Meeting with Greg and Elise to brainstorm and work on creating database schema
- Worked alongside Elise & Greg to research and find datasets for efficiency of household/office products
- Found callable APIs from energystar, still need to figure out connecting it to our database
- Still need to research fuel efficiency/lifetime dataset for cars
- Still need to populate database
Week of Jan 25 2022
Skyla:
- Created Cosmos DB resource on Azure
- Experimented with inner workings of Cosmos -> running queries, adding data, etc
- Created a template node.js project with the db connections and data manipulation methods
- Approved 2 pull requests for Justin
- linked custom domain name to static web app
Greg:
- Ran selenium tests for Justin changes
- Added logout button.
- Created email for testing purposes.
- Made test container on cosmosDB and followed quickstart guide
- Connected CapybaraServer to test container (code on new branch, not pushed yet)
Elise:
- Met with teammates to discuss and test cosmosDB to connect to the server.
- Created container and attributes in cosmosDB using Microsoft guide.
- Consulted EnergyStar guide for product metrics.
Max:
- Created (very low fidelity) UI mockups for the login screen and main dashboard to get a sense of the look and feel of these pages with the chosen colours.
- Consulted my graphic design friend on the logo I created
- Added all the necessary assets as .PNGs to the drive, so feel free to use them
Justin:
- Purchased the domain name greenstorm.xyz
- Configured our domain name with Skyla, pointing it at the React client
- Configured Firebase Admin on the server for login token verification and added a test for this to the client
- Added the ability for the client to call the localhost server when running on localhost, and the deployed server when running in production
- Reviewed and approved a pull request by Greg
Ahmad:
- Worked with greg to set up server connection to database
- Reviewed list of product databases and APIs to use in the database
- Started doing some reading on cosmosDB and NodeJS
- Need to ask about storing secrets for servers and databases
Week of Feb 1 2022
Skyla:
- met with Justin and Greg to implement first feature --> company sign up
- encountered issues with the database connections, need to continue work on that
- met with DB team and implemented new schema
- created sprint retrospective
Greg:
- Removed hardcoded db key and added it to azure server as a environment variable.
- Updated database schema to comply with cosmosDB standards, minimal amount of containers as possible with Skyla and Elise.
- Updated Schema diagram along with Skyla and Elise.
Elise:
- Discussed a different implementation of the schema database.
- Redesigned the database schema into fewer containers to meet cosmosDB standards with Skyla and Greg.
- Created an updated schema diagram with a high level view of containers as well as low level view of the attributes' data structure.
- Updated the Database Architecture wiki page.
Max:
- Added styling on login landing page...sans logo for now, since we haven't settled on one; might have to rework some of the CSS when the logo is added, but didn't touch the HTML per the request of Justin (working on the same branch).
Justin:
- Set up React Router to support multiple pages
- Refactored the client to separate the tests into a Diagnostics page
- Added a placeholder Dashboard page
- Began working on company creation feature (and pre-requisite functions) with Skyla and Greg
Ahmad:
Week of Feb 8 2022
Skyla:
-
Assisted Database team with new changes
-
Created fake data to work with for development
-
Worked with Elise throughout the week to create APIs in the server to connect with the database and complete the following operations: ** Get company data based on employee email address ** Get equipment data based on equipment ID ** add a new company to the data base
-
still in progress: ** add a new employee to a company ** add a new piece of equipment to a company
Greg:
- Informed Ahmad of DB changes
- Ahmad and I created containers for project and fake data to see JSON formatting.
- Assisted Skyla and Elise with await/async functionality.
Elise:
- Worked with Skyla throughout the week to create APIs in the server to connect with the database and complete the following operations:
-
Get company data based on employee email address
-
Get equipment data based on equipment ID
-
add a new company to the data base
- Worked on await/async functionality with Skyla & Greg.
Max:
- Destroyed copyright issues with using iCloud cloud icon in logo.
- SVGed the logo assets.
- Added assets folder under CapybaraClient/public/assets.
- Assisted in API creation meeting.
Justin:
- Refactored the server app. Routes for different functions have their own files, and code for accessing the database is its own file.
- Got my booster shot and departed the land of the living for a couple days
- Did some work for company creation feature
Ahmad:
- Met with Greg to catch up on db changes and create test containers as well as fake data
- Did some reading and learning about cosmos, react and node
Week of Feb 15 2022
Skyla:
- created a new api to create a company
- worked with greg to change the database schema a little bit to work better with cosmos workflow
- in the middle of working on an api to add a new employee to a company, should be done by tomorrow
- created postman api connections and shared with team, Max created shared postman team so we can all access these commands
Greg:
- Worked with Skyla to clean up access-db.js file, clean up redundant connections.
- Created new repo for Automated jobs, script for migrating/cloning DB will uploaded there.
Elise:
- Developed API call for creating new equipment for a company on a Live Share session with Max
- Tested API calls with Postman for POST requests with Max and Skyla
Max:
- Did some small work on the landing page, still trying to get the logo to be in the right spot
- Developed API call for creating a new piece of equipment (with Elise)
- Created postman workspace so that we all have access so the current API testing files
Justin:
- Changed Get requests to database API to POST requests
- Added checks to ensure the database API doesn't return undefined values
- Added the New Company flow to the React client
- Modified the conditions for a login prompt, so that the diagnostics page (and any other informational page in the future) can be accessed without an account
- Added a database connection test to diagnostics page (required a new container in our CosmosDB)
Ahmad:
Week of Feb 22 2022
Skyla:
- created several apis with elise, max and greg
- created more issues and organized github project
- started investigating powerbi integrations --> i think it will cost money but lets see
Greg:
- Created DB Migration script in CapybaraAutomation Repo
- Met with Ahmad to create DB backend tests.
- Added getCompanyByContactEmail api
Elise:
- Created APIs for incrementing the equipmentID with Skyla
- Assisted Skyla with addEmployee API and isAdmin API to check if employee is administrator
- Looking into PowerBI integration for dashboard graphs
Max:
- Added logo to landing page
- Fixed up some placeholder links to the bottom of the page
- Fixed merge conflict with Justin's prior merge (thx for the css fixes)
Justin:
- Added ability for server to detect and prevent duplicate company creation
- Added ability to create new companies from the client
- Created a paginated flow for company creation
- Did a minor stylesheet refactor
- Re-added log out button
Ahmad:
- Met with Greg to create DB backend tests.
Week of March 1 2022
Skyla:
- Worked with Greg to get Database tests running
- Edited workflow file several times to enable test cases
- Added database key secrets on github and accessed them through workflow file
- Worked with Elise and Ahmad to knowledge transfer and guide API development
- Had several midterms and assignments due this week, did not get a chance to work on assigned issues - will pick up next week
Greg:
- Called Skyla to get tests running in Github actions
- Added revert production DB method to CapybaraAutomation
- Add api testing with help from Max and Skyla
Elise:
- Created separate API to increment equipmentId (just updating - not creating new equipment)
- Created API to give an employee admin privileges
- Created API to take away employee admin privileges
- Met with TA to discuss progress and preparation for our presentation
Max:
- Helped Greg get a test working for testing some POST
- Did some CSS styling (not pushed yet)
- Contacted Carley to try and set up a meeting soon (she's hella busy)
Justin:
- Added automatic admin email detection
- Made progress on company creation flow so that the dashboard for a new company loads once the company has been created
Ahmad:
- Created API and logic to add/remove equipment and associate it with a company
- Created API and logic to update equipment associated to a company
Week of March 8 2022
Skyla:
- Added error handling to all api's created to ensure that the server won't crash
- Approved a bunch of pull request
- Created an API to remove an employee from a company
- Had several midterms this week, could not do much work on capstone
Greg:
- Added api test cases for giving and taking admin privilege's, and removing employee from company.
- Approved Elise's and Ahmad's PRs.
Elise:
- Currently building the Delete Company API
- Approved PRs for other APIs from Skyla and Ahmad
- Implemented error handling for APIs based on Skyla's recommendation
Max:
- Set up meeting with Carley Thursday at 5pm
- Approved Greg PR for some API testing
- Greg and I beat the Ender Dragon
Justin:
- Added a persistent navigation bar to the client
- Moved log out button to the navigation bar
- Added user management page to client
- Added list of employees to user management page
- Cleaned up client routing
- Began work on employee adding/removal
- Identified some upcoming issues with employee addition/removal
Ahmad:
- Adding functionality to remove a company from the database
- Meeting this week with Carley and the team on Thursday
Week of March 15 2022
Skyla:
- took over the delete company api
- did lots and lots of pm work, created phase two project plan
Greg:
- Added API test cases for adding/updating/removing equipment, as well as changing variable names to be more readable.
- Briefly worked with Justin on stopping Admin from deleting themselves if no other admins present.
- Assisted Skyla in creating config.js file and fixing DeleteCompanyAPI branch
- Add negative test cases.
- Transcribed meeting with Carley.
Elise:
- got covid
Max:
- Assisted in meeting with Carley to plan the dashboard.
- Re-searched js charting/graphing libraries that are compatible with REACT
Justin:
- Added feature preventing the only admin of a company from removing themselves to both the server and the client
- Finished employee removal support in client
- Changed company creation API to create/search for companies from company email rather than admin
- Began work on employee addition feature
- Started building modal popup for employee invitation
Ahmad:
- Struggling with courses
Week of March 22 2022
Skyla:
- created the first designs for the dashboard
- imported victory.js as the graph frame work
- created 4 graphs with dummy data to demonstrate potential of the app
- worked with max to style the dashboard
Greg:
- We use the
const
keyword and then change it..., should probably uselet
orvar
and use of parseFloat in APIS (Should discuss) - Helped Justin update server to accommodate adding Users to company from client
- Updated tests to test deleteCompany and reflect changes made to addEmployee API
- Added Company name to dashboard w/ Max
Elise:
- Created the final presentation for the business need, tech stack, team roles, demo & semester 2 plan
Max:
- Helped style the dashboard with Skyla
- Approved some PRs
Justin:
- Added a modal form for adding users to the client
- Updated the server with Greg and Skyla to support user addition from the client
Ahmad:
- Met with Elise to work on the final presentation and semester 2 plan
Week of March 29 2022
Skyla:
- Worked on presentation deck
Greg:
- Assisted Max fix colouring bug on front end graphs
- Worked on presentation deck
Elise:
- Worked on presentation deck
Max:
- Fix colouring bug on front end graphs
- Worked on presentation deck
Justin:
- Worked on presentation deck
Ahmad:
- Worked on presentation deck
Week of September 22 2022
Skyla:
- Added config.js file back to repo
- Met with the team to discuss goals for this semester
- Created [email protected], our email to send out notifications to users
- Implemented automatic sign up email to new users when they are added to a company
- Worked with Elise to create sign up email
Greg:
- Helped fix test cases for Justin's changes
- Helped Skyla test out invite emails
- Looked into finding efficiency data for appliances
Elise:
- Tested confirmation email for email creation
- Formatted confirmation email through Postman
Max:
- Had a chat with secondary customer Carley to re-onboard into the project, just as a reminder
- Began the styling of company creation page, a bit behind schedule
Justin:
- Fixed bugs relating to admin rights (employee removal & deletion)
- Began working on the ability for a user to be a part of multiple companies
- Began updating client UI to accommodate upcoming features
- Met with team to discuss plans for this semester
Ahmad: *
Week of September 29 2022
Skyla:
- Approved several Prs
- Created new plan for next phase of development and limited project scope to two key features - calculate vehicle emissions per month, estimate shipping route emissions
- In the process of developing two new apis, update vehicle odometer readings, update vehicle mileage readings and calculate emissions using this data
- working with max and elise on front end user input forms
Greg:
- Improved server errors with Justin
- Made python script to find prices for cars off of autotrader.ca
- Made API for deleting equipment and added test cases for it as well as getAssociatedCompanies
- Worked with Ahmad to populate DB with cars
- Worked with Justin to resolve test case issues
Elise: *
Max: *
Justin:
- Fixed a number of tests preventing server deployment (twice)
- Improved server errors with Greg and Skyla (twice)
- Finished multi-company support for users, including new company creation
- Added button animations on client
- Added drop-down menu to client for account-related actions
- Added some new visual styles to client
- Fixed a number of UI bugs
- Began working on dashboard UI
- Made client mobile-friendly
- Added vehicle search by make and model (client & server)
- Added ability to add and delete vehicles from a company (client & server)
- Refined modal pop-over visuals
- Added an actual activity indicator
Ahmad:
- Worked with Greg to populate DB with cars and to find prices
- Worked on finding a new mapping API (https://developer.mapquest.com/) to potentially calculate mileage
Week of October 6 2022
Skyla:
- Helped Greg change database schema
- Created new API to store km readings per trip
- In progress -- creating an api to calculate carbon emissions per trip, need database updates to move forward with progress
Greg:
- Changed property names in db to ensure they use only alphanumeric characters
- Added electric cars to db
- Moved cars from testDB to prodDB
- Updated db architecture diagrams
Elise:
Max:
Justin:
- Fixed bug causing company creator to load forever for users with no associated companies
- Added ability to configure company vehicles with a license plate upon creation (client & server)
- Added license plate information in other important parts of the UI
- Added trips page and most of the necessary UI to record trips
Ahmad:
Week of October 13 2022 (Meeting postponed to Oct 18)
Skyla:
- Started development of outlook authentication support
- Investigated with Justin into why trip addition was not working, no conclusive results or reason yet.
Greg:
- Worked with Justin to fix/remove existing Server tests
- Worked with Justin to fix APIs for new equipment DB properties
- Changed db to no longer repeated manufacturer info in the productName
- Fixed issue where adding vehicle to company removed the companies address
- Added backend tests about finding vehicles and getCompanyVehicles
Elise:
Max:
Justin:
- Worked on fixing server tests with Greg
- Worked on fixing new equipment API with Greg
- Fixed bugs preventing vehicles from being added and removed from a company
- Created MapQuest account for GreenStorm
- Got MapQuest requests working on server
- Began hooking up MapQuest functionality on Client
- Merged MapQuest wrapper API into Skyla's trip adding API
- Added viewable list of trips to client (plus server changes to accommodate this)
- Updated login component's design to bring it more in line with the rest of the app
- Fix page display flow, so that the login screen no longer appears for a split-second after reload
- Slowly but surely, being severely worn down by my course load
- Continued to suffer at the hands of my professors
Ahmad:
Week of October 20 2022
Skyla:
- Released a patch to fix MapQuest Bug with Justin -- see his update for more detail
- Added outlook support and got it into prod
- Worked with Ahmad to create the PR for his map image feature
- Added two more parameters to trip in the database to record start and end destination
- Added names for employees on back end and front end
- Finalized dashboard content with justin and greg
- Patched blank trip bug
- Created an API to dynamically send content from database to front end depending on type of graph needed
- approved several prs
Greg:
- Fixed old test case that passed but didn't function properly.
- Created new test cases for APIs involving trips.
- Starting development on front end tests.
Elise:
Max:
Justin:
- Worked on fixing trip adding on prod with Skyla (turns out, the "experimental" node
fetch()
function really is experimental) - Helped Skyla get Outlook login support running
- Spoke with Mustafa to let him know about our progress
- Reviewed numerous PRs
- Significantly improved trip list
- Significantly improved trip details UI
- Fixed an SQL query on server
- Redesigned the login buttons
- Made dashboard graphs actually work
- Improved dashboard graph styles
- Began working on dynamic charts for dashboard user configuration
- Fixed numerous server issues with Skyla and Greg
- Added a fuel use calculation fallback in case MapQuest doesn't work (because MapQuest broke)
- Got pile-driven by my other courses (thanks, C++ labs, assignments, test and midterm)
Ahmad:
Week of October 27 2022
Skyla:
- updated database partition key and ported all database info to new container
- created several apis:
- update company name
- update company contact email
- update company address
- tried to fix backend test to use new db container, needed lots of help
Greg:
- Implemented frontend selenium tests in JavaScript
Elise:
Max:
Justin:
- Added a date range picker to dashboard and styled it
- Updated server to accommodate date range feature
- Set up storing dashboard configs in cloud
- Fixed the backend tests again
- Reviewed several PRs
Ahmad:
Week of November 27 2022
Skyla:
- Patched dashboard deletion bug in the database
- creating an API to return first trip time stamp to aid front end development
Greg:
- Increased amount of cars in the database
- Changed front-end tests to use python as it avoids juggling of async tests in JS
- Added new back end tests
Elise:
Max:
Justin:
- ngl i have not updated this wiki in a while because i've been swamped with not only this project, but other courses. However, I have continued to develop the Dashboard and have been working on fixing a lot of bugs, many of which were serious
- also have grinded out fixes and improvements for the whole app alongside Skyla and Greg
Ahmad: