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 use let or var 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: