Skip to content

Latest commit

 

History

History
235 lines (177 loc) · 9.28 KB

README.md

File metadata and controls

235 lines (177 loc) · 9.28 KB

Greenlist (a full-stack solution)

Greenlist is an official registry, directory, and forum for designers and brands to find suppliers of green materials, as well as be a major networking vessel for material reclaim.

Developers

* Pursuit 6.2 Hackathon's MOST IMPACTFUL AWARD Winner *

screen capture of Welcome page

Designers, especially independent and small designers, lack a centralized resource to find, research, and even discover eco-friendly sustainable materials they can use.

Greenlist can be implemented sooner rather than later into the fashion ecosystem and it would fill a large gap in the workflow of independent designers and small businesses.


Table of Contents

Instructional Team

Industry Advisors


Developers' Notes

I. Technologies Implemented

  • PostgreSQL 12.1
  • Express.js 4.16.1
  • React 16.13.0
  • React/Redux 7.2.0
  • Redux 4.0.5
  • React Router Web 5.1.2
  • Pg-promise 10.4.4
  • Axios 0.19.2
  • Bootstrap 4.4.1
  • React Bootstrap Carousel 4.0.3
  • Multer 1.4.2
  • Node.js 13.8.0
  • JavaScript ES5+
  • CSS3
  • HTML5
  • Git / Github

II. Setup

  • To run GREENLIST, first instantiate and seed the PostgresQL database from the root:

    $ psql -f database/greenlist_registry_db.sql
    
  • Second, install and run the backend locally using npm:

    $ cd backend
    $ npm install
    $ npm start
    
  • And lastly in a second instance, install and run the frontend locally using npm:

    $ cd ../../frontend
    $ npm install
    $ npm start
    
  • GREENLIST will then be found in browser at:

    http://localhost:12000/

III. Developers' To Dos

  • Materials Research Dashboard
  • Styling Consistency
  • Mobile Device Responsiveness
  • Further Bootstrap Integration
  • Encrypted User-Auth

IV. Frontend Wireframes

Wireframes PDF


V. Database Schema

database schema

  • Creators

    • id
    • username - Unique, Not Null
    • firstname - Not Null
    • lastname - Not Null
    • password - Not Null
    • about
    • avatar_url
    • phone_number
    • email - Unique, Not Null
    • website_url
    • address
  • Resourcers

    • id
    • company - Unique, Not Null
    • password - Not Null
    • about
    • avatar_url
    • phone_number
    • email - Unique, Not Null
    • website_url
    • address
  • Materials

    • id
    • name - Not Null
    • description - Not Null
    • photo_url
  • Products

    • id
    • name - Not Null
    • body - Not Null
    • resourcers_id - References Resourcers + On Delete Cascade
    • material_id - References Materials
  • Reclaims

    • id
    • name - Not Null
    • quantity_num - Not Null
    • quantity_label - Not Null
    • time_created
    • body - Not Null
    • composition - Not Null
    • creator_id - References Creators + On Delete Cascade
    • is_need - Boolean
  • Photos

    • id
    • photo_url - Not Null
    • reclaim_id - References Reclaims + On Delete Cascade

VI. Server Endpoints

  • Creators

    Method Endpoint Description Body Data
    GET /creators Get all creators n/a
    GET /creators/:id Get single creator by id n/a
    POST /creators/add Add new creator username, firstname, lastname, password, avatar_url, phone_number, address, email, website_url, about
    PATCH /creators/edit Update creator Info username, firstname, lastname, password, avatar_url, phone_number, address, email, website_url, about
  • Resourcers

    Method Endpoint Description Body Data
    GET /resourcers Get all resourcers n/a
    GET /resourcers/:id Get single resourcer by id n/a
    POST /resourcers/add Add new resourcers company_name, avatar_url, about, password, phone_number, address, email, website_url
    PATCH /resourcers/edit Update creator Info username, avatar_url, about, phone_number, address, email, website_url, about
  • Products

    Method Endpoint Description BodyData
    GET /products Get all products n/a
    GET /products/:resourcer_id Get product by resourcer ID n/a
    POST /products/add ADD new Product name, body, resourcer_id, material_id
    DELETE /products/delete/:id Delete single product by ID n/a
  • Reclaims

    Method Endpoint Description BodyData
    GET /reclaims Get all reclaims n/a
    GET /reclaims/:resourcer_id Add new reclaim n/a
    POST /reclaims/add ADD new reclaim name, body, composition, quantity_num, quantity_label, time_created, creator_id, is_need
    DELETE /reclaims/delete/:id Delete reclaim product by ID n/a
  • Materials

    Method Endpoint Description Body Data
    GET /materials Get all materials n/a
    GET /materials/:id get all by ID n/a
  • Photos

    Method Endpoint Description Body Data
    GET /photos Get all photos n/a
    GET /photos/:reclaim_id Get all by reclaim_id n/a
    POST /photos/add/ Add new photo photo_url, reclaim_id
    DELETE /photos/delete/:id Delete photo n/a

VII. Presentation Slides

Presentation PDF



Note: Archived Frontend Repo - This repo was formerly only the backend repo before we combined both front and back into one. The original, now archived, front end repo can be found at: greenlistRegistry_front__Web (archived).