Skip to content

fac25/week4-alex-abdullah-joe-lisa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A place to post about your pet :) Petsagram

Roles

  • Joe: Scrum Facilitator
  • Alex: QA
  • Lisa: Dev-ops
  • Abdullah: UX/UI

Setup

Make sure you have Git and Node (v18) installed.

Clone this repo and cd into the directory

Run npm install to install all the dependencies

Run npm run seed (npm run seedWindow for Windows) to seed the local database.

Run npm run dev (npm run devWindow for Windows) to start the server.

This uses the nodemon library to auto-restart the server when you save changes.

Database

This project uses Sqlite3 through the use of the common library better-sqlite3. Our database uses three tables following this schema:

users

column type constraints
id integer primary key autoincrement
name text
email text unique
hash text
created_at datetime current timestamp

pets

column type constraints
id integer primary key autoincrement
pet_name text
user_id integer references users(id)
pet_type text
image_path TEXT
private integer default 0 check(sharing in 0, 1)

sessions

column type constraints
id text primary key
user_id text references users(id)
expires_at datetime not null
created_at datetime default current timestamp

User Stories

  • As a user I want to post about my cute pet.
  • As a user I want to comeback to your site and see what I posted is still there.
  • As a user I want to Sign up.
  • As a user I want to log in and log out.
  • As a user I want to be able to add my posts either to my page or to the public page

Acceptance Criteria

  • Express server
  • Well-organised modular codebase
  • SQLite database
  • Hosted on Heroku
  • One of the spike topics
  • Validate user-submitted data on the server
  • Handle errors and inform the user
  • Styled appropriately

Communication

Throughout our project we used pair-programming method to write the code and rosolve issues. We met in-person, as well as had online meetings to discuss and work together. We would gather for 5-10 minutes for a quick huddle to discuss the progress so far, and if we faced any issues.

Tools Used

Discord VS Code Live Share extension Github Project Board Software Methodologies During our planning stage, we identified there were functions and components that would be reused in the project. As a result, we decided to include modularization and attempted to follow the DRY principle.