The following steps are only for one of the group members to perform.
- Create your own copy of this repo using the
Use This Template
button, ideally using the name of your project. The repo should be marked Public - Verify that the skeleton code now shows up in your repo on GitHub, you should be automatically redirected
- Clone your copy of the repo to your dev machine
- Add your team members as collaborators to the project so that they can push to this repo
- Let your team members know the repo URL so that they use the same repo (they should not create a copy/fork of this repo since that will add additional workflow complexity to the project)
- Create the
.env
by using.env.example
as a reference:cp .env.example .env
- Update the .env file with your correct local information
- username:
labber
- password:
labber
- database:
midterm
- Install dependencies:
npm i
- Fix to binaries for sass:
npm rebuild node-sass
- Reset database:
npm run db:reset
- Check the db folder to see what gets created and seeded in the SDB
- Run the server:
npm run local
(startpostgres first)
- Note: nodemon is used, so you should not have to restart your server
- Visit
http://localhost:8080/
- Do not edit the
layout.css
file directly, it is auto-generated bylayout.scss
. - Split routes into their own resource-based file names, as demonstrated with
users.js
andwidgets.js
. - Split database schema (table definitions) and seeds (inserts) into separate files, one per table. See
db
folder for pre-populated examples. - Use helper functions to run your SQL queries and clean up any data coming back from the database. See
db/queries
for pre-populated examples. - Use the
npm run db:reset
command each time there is a change to the database schema or seeds.- It runs through each of the files, in order, and executes them against the database.
- Note: you will lose all newly created (test) data each time this is run, since the schema files will tend to
DROP
the tables and recreate them.
- Node 10.x or above
- NPM 5.x or above
- PG 6.x
- "As a logged in user, I can save a url with a title, description, and assign a category (one only)"
- "As a logged in user, I can update a saved url (url, title, desc, category)"
- "As a logged in user, I can delete a saved url I own"
- "As a logged in user, I cannot delete a url I do not own"
- "As a logged in user, I can search for a saved resource created by any other user"
- "As a logged in user, I can comment on any saved resource, including my own after creation"
- "As a logged in user, I can delete my comments"
- "As a logged in user, I cannot delete other users' comments"
- "As a logged in user, I can rate any resource 1-5"
- "As a logged in user, I can update my rating"
- "As a logged in user, I can see an average rating on each resource"
Stretch
Demo Notes
- Evaluator noted "energy" level dipped during presentation
- "You should be excited to present your app"
- When presenting on camera, make sure lighting is good, full face is shown, no background over-exposure
- Flow of presentation is important, have demonstration and talking in sync with no awkward pauses
- Practice demoing with good flow
- Use a narrative, tell a story of a person seeing and using the app for the first time
- The audience is the user, direct their attention to what you want them to see with phrases like "Now if you look at the cursor..."
- No external distractions during presentation time
- Business casual dress-code; NO HATS
Script
- Open app at start
- Quick introduction from each member (kev, rain, james) and why we chose this project
- We chose this project because we felt like it could be a starting-point for a more advanced app in the future and might be useful
- Sign up > Continue > Login
- Here we have the user home page > rain
- Here we have the add new resource page > rain
- Here we have the resources page > james
- Here we have the categories page > james
- Here we have the search page > kev > search "cats" not found > search nothing > error
- That's it! We worked really hard on this and only cried once
- (Stretch) We did not add error handling for non-logged-in users of the app