Easy Stir Fry Weekly Log

From ESE205 Wiki
Revision as of 10:56, 17 December 2018 by Jdfeher (talk | contribs) (Protected "Easy Stir Fry Weekly Log" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite)))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

BD App Weekly Log:

Link to Project Wiki

Week 1: August 31-September 7

  • 1 hour preliminary meeting to discuss project ideas [Garrett and Stephen]

Week 2: September 8-14

  • 1 hour group meeting to confirm the final structure of the project idea [Garrett and Stephen]
  • 1 hour meeting with Ethan and Prof. Feher to discuss ways to go about actually doing the project [Garrett and Stephen]
  • 30 minute meeting with Ethan and Prof. Feher discussing our replacement to the night light project [Garrett and Stephen]
    • Replacement project is creating a basic calculator that accesses a basic database
    • Planned to use Node.js instead of python or some other language in the project
    • Discussed possibility of taking project further than planned (coding in the entire stir fry ticket selections, working with B-School to actually implement the app) [Garrett and Stephen]

Week 3: September 15-21

  • 2 hour group work session
    • Updated/Created weekly log [Stephen]
    • Worked on project proposal [Garrett and Stephen]
    • Signed up for AWS, created a team repository on Bitbucket, ran into trouble figuring out the set-up regarding coding and creating a database [Garrett and Stephen]
  • 1 hour meeting with Ethan [Garret and Stephen]
    • Ethan provided many needed specifics regarding setting up a server, creating a database, and creating the UI and EI (employee interface)
    • Went over Gantt chart tasks
  • 1 hour market validation survey in BD [Garret]
  • 2 hour group work session
    • Created presentation slides, updated project wiki objectives [Garret]
    • Formatted project log/wiki, Re-did/finalized Gantt Chart [Stephen]

Week 4: September 22-28

  • Weekly plan: finish basic calculator project in lieu of night light
    • Creating a database, server, UI
  • (Sunday) 1.5 hours of watching Node.js tutorial videos on YouTube via youtuber "The Net Ninja" [Stephen]
    • Learned about using Atom and Node.js, functions, express functions, creating a local server, and monitoring requests to that server
  • (Monday) 1 hour of watching Node.js and MySQL tutorials [Stephen]
    • Installed packages, attempted to create MySQL database
  • (Tuesday) 2.5 hour group work session [Garrett and Stephen]
    • Watched videos, researched code in attempts to create a database and commit files to bitbucket
    • Struggled most of the time, still unable to create a MySQL database successfully, commit files to bitbucket, or make much progress at all
  • (Wednesday) 1 hour meeting with Ethan [Garrett and Stephen]
    • Set up repository, database, talked about basic calculator project, set up BitBucket
Running Calculator in browser as a file
  • (Wednesday) .5 hours spent creating step-by-step tutorial following our steps [Garrett]
  • (Wednesday) 1 hour spent coding basic calculator (side project) html/javascript file [Stephen]
    • Attempted to run through localhost and file://localhost without success, attempted to run javascript file through an html index without success
  • (Thursday) 3 hour group work session [Garrett and Stephen]
    • Polished up calculator UI, researched how to run the javascript file through a server
    • Successfully ran the calculator file in chrome
Running Calculator in browser as a file
    • Shortly after was able to set up an http server with the http-server package in node
Running Calculator through http server

Week 5: September 29-October 5

  • Weekly Plan
    • Start thinking about wireframes and UI formatting
    • Start working on database schema in addition to the formatting, they will be closely related
  • (Tuesday) 1 hour: learned about using MySQL workbench, formatting schema, and created a database table [Stephen]
  • (Tuesday) 2 hours: created a list of necessary user inputs, created wire-frame for customer-facing UI [Garrett]
  • (Tuesday) 2 hours: team met to discuss progress, share data, and make goals for the next meeting [Stephen and Garrett]

Week 6: October 6-October 12

  • (Tuesday) .5 hour: watched workshops on SQL and html development
  • (Thursday) 1 hour: met with Ethan to discuss process and future goals, linked our workbenches through the RDS [Garrett]

Week 7: October 13-October 19

  • (Sunday) 1 hour: watch HTML tutorial and practice with Mimo [Garrett]
  • (Monday) 1 hour: practice CSS with Mimo and begin coding the home page [Garrett]

Week 8: October 20-October 26

  • (Saturday) 5 hours: work on website home-page format and linking database queries [Garrett and Stephen]
  • (Saturday) .5 hours: problem-solved with Ethan, asking questions, and familiarizing ourselves with our programs [Garrett and Stephen]
  • (Tuesday) 1 hour: read about different database queries, creating a javascript class, began coding methods for sending UI entries to the DB table [Stephen]
  • (Wednesday) 30 mins: cleaned up code from last night, decided on SMS service (twilio) [Stephen]

Weed 9: October 27-November 2

  • (Sunday) 2.5 hours: got the Order object class to function with a sendOrder() method, successfully queried DB with different entries,

hitting some roadblocks on other back-send stuff like pulling orders [Stephen]

  • (Sunday) 5 hours: worked on Home page and finished Customer UI Wire map, hitting road blocks trying to deconstruct bootstrap css [Garrett]
Customer UI Wiremap
  • (Monday) 1 hour: worked on using an SMS service, got it working properly as an Order object method, and altered the Order object to contain a phone number as a parameter, and the main table to contain a phone number as a column [Stephen]
SMS Working
  • (Monday) 7 hours: Constructing Customer User Interface, having trouble with aesthetics when browser size changes [Garrett]
  • (Tuesday) 7 hours: Constructing Customer User Interface and created BD Worker UI [Garrett]
  • (Tuesday) 2 hours: spent time working on routes and changing the main table, ran into some issues that I couldn't get around, but made a little progress making a couple routes and improving the waittime route [Stephen]
  • (Wednesday) 2 hours: Continuing work on UI and Creating BD UI Wiremap [Garrett}

BD Worker Wiremap

  • (Wednesday) 2 hours: created accounts table in DB, created Account object and methods, continued to work on routes [Stephen]
  • (Thursday) 1.5 hours: worked more on routes regarding accounts [Stephen]

Week 10: November 3-November 10

  • (Sunday) 4 hours: continued working on routes, most of them are completed and work properly, still a couple that need to be finished/talked over with Ethan to make sure everything is correct [Stephen]
  • (Sunday) 4 hours: Continued work on Customer facing UI [Garrett]
  • (Monday) 1 hour: altered the accounts DB to contain a phone_number column, then created a /ResetPassword route using the SMS service and a randomly generated 4-digit number as a way to confirm the account...all of the routes on the wireframe are now completed [Stephen Richardson]
  • (Monday) 7 hours: Finished customer facing UI [Garrett]
  • (Wednesday) 2 hours: Tried to learn how to create json that will call Stephen's Post and Get routes [Garrett]
  • (Friday) 2 hours: Completed the Worker facing UI, it is on a separate 'site', really its just a different /Workers [Garrett]

Week 11: November 11-November 18

  • (Saturday) 1 hour: Worked with Ethan to learn how to write calls [Garrett]
  • (Tuesday) 2 hours: finished up routes, all working properly [Stephen]
  • (Sunday) 7 hours: worked on integrating UI and server, getting server online via AWS [both]

Week 12: November 19-November 25

  • (Tuesday) 2 hours: Met with Ethan, continued working on integrating UI and server [both]
  • (Thanksgiving break) 6 hours: Made routes more efficient/compatible with UI, created different responses to account for UI input anomalies [Stephen]
  • (Thanksgiving break) 8 hours: Creating and editing worker UI pages and beginning javascript connections, editing Signup and saving profile ID across the UI to keep users 'logged in' until hitting sign out [Garrett]

Week 13: November 26-December 2

  • (Monday) 2 hours: Having trouble creating a /EditSavedOrder route, worked on trying to integrate an edit saved order option in the /PlaceOrder route [Stephen]
  • (Monday) 2 hours: continued integrating UI and server, making sure everything is running correctly...very close to getting all parts to function properly, just a few issues that will hopefully be resolved after meeting with Ethan [both]
  • (Wednesday) 2 hours: Met with Ethan, continued to problem solve issues, printed poster [both]
  • (Wednesday) 4 hours: Continued to problem solve issues, changed a few routes, finished up Employee UI [both]
  • (Thursday) 1.5 hours: Work with Ethan to FINALIZE ALL FUNCTIONS! [both]
  • (Thursday) 4 hours: Making HTML more appealing [Garrett]

MySQL Tutorial

This is a how-to that goes through the process of setting up a MySQL database through Amazon Web Services (AWS)

First, create an AWS account, and then use the services dropdown and select "RDS" under databases

Select RDS

Next, create a database.

Create a Database

Next, select the recommended case.

Select Case

Next, you have to name your database. After selecting a case, you will be brought to a page where you establish setting for your database instance. For "DB Instance Identifier", select a name that is related to your project but make sure it isn't too long or complicated. For the master username, the general standard for databases is to use "root" as the username and it is easier and recommended to use that. The password should not be easy to guess, and it is important to have a good password because if someone gains access to your database they can potentially use way more space than is provided for free and result in charges to your AWS account.

Set Up Database Info

After setting up the basic database info, you have to input more advanced settings. You want to make the database publicly accessible, which means that you can access it from anywhere with the correct endpoint, username, and password. Leave the database Re-enter your database name, and leave the cluster-identifier blank, as AWS will provide a cluster-identifier. The cluster identifier is the endpoint for your database, which is similar to an IP address, only it is used for databases. Leave all other advanced settings as their defaults.

Publicly Accessible

Database Name

You are now ready to create your instance. After doing so, select the instance from the RDS dashboard and the page should look like this:

DB Instance

Scroll through this page, and you will find the endpoint that AWS has created for you. Make sure that it is listed as publicly accessible, and your database is set up and ready to go.

DB Info

Next, install MySQL Workbench. It is a great tool that allows you to create tables and other schema within your database without having to actually code. Once it is installed, the welcome page will prompt you to create a new connection. Do so, and then enter your database information. In the "Hostname" line, copy and paste your database endpoint from your AWS instance, make sure the port is the same as listed on AWS (it should be the default port, 3306). Make sure to correctly input the database name, username, and password. All of the other inputs for creating a database connection should be left blank or on default.

Setting up a connection on MySQL Workbench

Once you create a connection, you will be able to start editing your database. Make sure to double click on your database name listed under "Schema" in the bottom left corner of the workbench home, and then you can create a table by clicking the table with a plus symbol on it in the top right corner.

Create a Table

Once you create the table, you'll be able to add columns for the table to organize the data you'll be storing. You'll probably want to make the first column an id number that corresponds to the row of the database, and to do this make the id column auto-incrementing and the primary key. This will also automatically change it to non-null. Doing this makes it easier to keep track of your rows. For the other columns, you can change the data type to a string (listed in MySQL workbench as var char), an int, or many others. There are a lot of other tools within MySQL workbench, and using them is not challenging. For a basic database, it is easy to use and visualize, as well as being versatile enough to be used for complex databases.

Editing your table

With your AWS database instance and MySQL workbench, using your database for whatever you are designing should run smoothly and be easy to edit. For information on MySQL syntax and coding, w3schools is an excellent resource.