Blake T. Edwards Log - SCCapstone/EZBag GitHub Wiki

Personal Research Repo

August 23rd - 30th

  • Organized team communications, held first two team meetings, got everyone in sync (all: cloned project, installed IntelliJ, ran server)

August 30th - September 6th

  • Created Figma designs for all web app views, created interactive demo with design to run on iPhone 8 browser, completed personas and user stories with team

September 6th - September 13th

  • Created final design templates. Created Jersey RESTful API for web app. Created MongoDB Connector. Collected 100 barcode to product-information mappings. Created crude barcode scanner view that calls backend product lookup service.

September 13th - September 20th

  • Completed Design Milestone: finalized Figma designs, wrote descriptions for each app view, created color palette, added payload error checking for API endpoints, created Scanner view, working towards product card popup view on scan, outlined all needed API endpoints and what each expects

September 20th - September 27th

  • Create cart.js implementing needed cart functions (getCart(), setCart(), itemExistsInCart(barcode), etc)
  • Integrate cart.js with previous scanner and product card work in Frontend/blakeE to complete product scanner view
  • Finish Personal Research Milestone (part 1): Create Digital Ocean server and get SSL certificate

September 27th - October 4th

  • Finish Personal Research Milestone (part 2): Create Apple Pay sand box with Stripe.
  • Host apple pay test application on Digital Ocean server

October 4th - October 11th

  • Upload personal Research Milestone work to website
  • Upload server side payment verification code
  • Modified firewall to allow communication to server
  • Created new design mockups on Figma for new requirements
  • Updated and completed Requirements wiki page and create issues for each respective feature
  • Completed Personal Research Project

October 11th - October 18th

  • Completed architecture milestone: finished outlining URLs to be implemented, created complete REST API documentation, outlined Database Schema, created and formatted Architecture wiki page and subpages.
  • Started Ethical, Legal, and Security Considerations

October 18th - October 25th

  • Complete Source Control milestone with team
  • Complete Ethical, Legal, and Security Concerns document and wiki page

October 25th - November 1st

  • Completed the source control milestone
  • Fleshed out and completed the Legal concerns document wiki page
  • Completed the Ethical, Legal, and Security concerns document on wiki page
  • Created team plan for what needs to get done for PoC milestone and added issues to complete to the new POC project page

November 1st - 8th

  • Complete the PoC PowerPoint presentation for PoC demo
  • Assign all POC project page issues to team members
  • Complete 4 of my assigned issues

November 8th - 15th

  • Assigned all group members project issue cards on the Project page
  • Completed all but one of my assigned cards on Team Project page (through this GitHub repo)
  • Installed and began learning the Vue Framework
  • Integrated VanillaJs work into basic Vue project

November 15th - 22nd

  • Working with team to integrate previous VanillaJs work to Vue Framework
  • Merging all team member's Vue work together into SVA
  • Completing >= 10% of project for the final milestone

November 22nd - 29th

  • Adding Vue Router for navigation between views
  • Developing login page
  • Developing backend login system

November 29th - December 6th

  • Fully integrated scanner into Vue Js
  • Added new scanner page to router
  • Re-integrated API calls for product lookup with Vue implementation of scanner
  • Updated backend to not require barcodeType upon lookup and product insert
  • Updated backend to accept tax property for each product
  • Added tax property to frontend product and total calculations
  • Worked out multiple frontend bugs
  • Created backend function to send digital receipts to customers after checkout
  • Deployed working proof of concept

December 6th - December 13th

  • No milestones due, break

December 13th - December 20th

  • No milestones due, break

December 20th - December 27th

  • No milestones due, break

December 27th - January 3rd

  • No milestones due, break

January 3rd - January 10th

  • No milestones due, break

January 10th - January 17th

  • Closed all issues that should have been closed last semester
  • Added more known issues from Proof of Concept release
  • Removed dependency that was not needed and had security vulnerability

January 17th - January 24th

  • Researched and chose testing frameworks we will use: Cyprus and JUnit
  • Created unit test with JUnit
  • Created unused behavioral test with Selenium

January 24th - January 31st

  • Discovered and helped resolve bug caused by deploying code with JUnit tests
  • Added code to startup method of backend to add example product for API unit test
  • Resolved customer info insertion bug
  • Added session ID to the database insertion for customer info
  • Added branch statements and more descriptive messages to customer info / eReceipt endpoint
  • Working towards dynamic cart total calculation

January 31st - February 7th

  • Finished dynamic cart total calculation
  • Added consistent status messages on all endpoints
  • Finished user registration route and scheme
  • Updated backend product test to be more accurate and robust
  • Added new user registration test
  • Working towards user login route, token generation, and endpoint access level scheme

February 7th - February 14th

  • Fixed bug in dynamic cart total calculation
  • Added working JWT Token generation, decoding, and secret key to configuration file
  • Added check for valid user login credentials for token generation

February 14th - February 21st

  • Completed user registration w/ bug fixes
  • Completed user login with token generation, expiration, and checking of authentication header on merchant routes
  • Completed merchant user get carts function (returning last 24 hours carts)
  • Added verification boolean to cart object inserted via checkout route

February 21st - February 28th

  • Completed cart verification route for merchant user
  • Completed frontend connection and utilization of objects passed between registration and login routes
  • Created frontend form rules for registration and login pages to ensure correctly formatted email and non-empty fields
  • Helped complete redirect route that saves businessID for the QR code -> customer app transition
  • Added merchant views to frontend and added logic to display correct navigation bar based on if in customer app or logged in merchant side of app
  • Registered and added new Scandit license key
  • Fixed correct display of customer checkout date-time to merchant cart verification view
  • Added autocomplete search bar component to frontend
  • Created routes to perform substring product search and another route to return all products at a store
  • Added ability for customer to select search item and display the product card (as if they just scanned the product's barcode)

February 28th - March 7th

  • Fixed product card clickaway bug
  • Fixed search bar bugs and formatting
  • Working towards more efficient and secure product search (currently uses route that returns all stores products instead of using substring search route)

March 7th - March 14th

  • Fixed bug displaying incorrect customer cart total on merchant side and rounding error on cart tax on customer side
  • Adding encryption of user password on frontend (salt/pepper too)
  • Working towards efficient product search

March 14th - March 21st

  • Added scanner to merchant side of application
  • Added new route to accept authenticated merchant product additions to database
  • Added new user registration confirmation link email generation
  • Completed user registration confirmation flow
  • Working with Brendan towards QR code generation and send after verification

March 21st - March 28th

  • Completed merchant side product scanner for store specific product listing updates / additions
  • Completed encryption of password with salt on frontend
  • Added new login credentials check using salt in database
  • Added pre-confirmation to example store user

March 28th - April 4th

  • Completed enhancements and bug fixes of merchant side application: removing local store of products, clearing vuex store on logout, adding sales dashboard charts
  • Completed bug fixes on customer side: pause scanning when using search bar
  • Completed backend bug fixes: QR code go to development and remote user confirmation links
  • Adding backend functionality: deletion of product
  • Added password salting and hashing before insertion in database
  • Completed addition of token authentication on all merchant protected API routes
  • Added business ID to token and completed authentication check to make sure one logged in business owner could not request API for details of another business
  • Updated merchant token to be included in store rather than cookie to prevent CORs
  • Updated Scandit license key
  • Updated landing page to have link to merchant login
  • Created and uploaded v0.9 release notes
  • Fixed CORs error when redirecting to login from email confirmation link

April 4th - April 11th

  • Cloned DecisionGame repository
  • Performed bug testing and quality assurance