foundersandcoders / resource-sharing

Built for Founders & Coders - for members to share resources with each other

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Resource sharing website

  1. What
  2. Why
  1. How
  1. How to run our website on your local machine

What

A website for FAC members to share resources with each other.

Why

This has been designed to solve the flaws in our current sharing methods:

  • old links getting lost in the long gitter channel history
  • no categorision makes searching through the list of resources difficult
  • the "notes" repo makes it hard to share links quickly enough
  • reasons for the recommendations may only be shared with a few people via word of mouth

User stories

As a member of the current FAC cohort,
I want to find the best resource by topic,
so that I can extend my learning each week.

Journey:
Homepage -> click on topic -> resources page (-> choose filter) -> click on resource title

As a member of the current FAC cohort,
I want to share and review resources with my fellow FACers,
so that we can learn collaboratively.

Journey:
Homepage -> click "add" button -> createResource page -> fill in form, click submit -> homepage? view my uploaded resource?

As a member of the current FAC cohort,
I want to have access to the resources that previous cohorts have found useful,
so that we can build on each others' learning experiences.

retain the same database - don't create a new one each FAC

As a member of the FAC alumni,
I want to found out what the current/previous FACers found useful,
so that I can build an iteratively better programme for the cohort that I'm teaching.

enable more than just the current cohort to have access

Sub stories

As a busy FACer who doesn't have much time,
I want to share my resource as quickly as possible,
so that I can get back to building my project asap.

"add" button should be clearly visible on the homepage

As someone lagging behind on a particular week,
I want to find the best resource(s),
so that I can catch up to the rest of the group asap.

should be able to find resources based on recommendation (e.g. rating, review)

As someone who trusts a particular cohort member's opinion on a topic,
I want to see all the resources and/or reviews subitted by that member,
so that I can gain from their wisdom and become as good as them.

list only the resources that have been uploaded/reviewed by a particular user

How

Features:

Login: only FAC members can perform CRUD operations on the site (no delete option for now - until we see a use case).

Register: should require admin authorisation.

View list of resources primarily by topic - website to be organised around the structure of the FAC course.

Filter resources by:

  • rating
  • time of upload
  • user

All users can:

  • view resources & reviews (using all available filters)

Logged-in users can also:

  • create & edit their own resources & reviews
  • add their rating to a resource

Admin users can:

  • add & update topics - to accommodate for a changing curriculum

Schema

schema

Endpoints

Implemented:

  • GET :: / Landing page
  • GET :: /login Login page - enter username & password
  • POST :: /login/submit Successful login re-routes user to logged-in version of homepage
  • GET :: /register Registration form
  • POST :: /register/submit Adds new entry to users table in database, re-routes user to logged-in version of homepage
  • GET :: /logout Reroutes user to homepage, where they can no longer add a resource
  • GET :: /{topic_endpoint} Shows all resources associated with a particular topic
  • GET :: /{topic_endpoint}/{resource_endpoint} Shows all reviews associated with a particular topic
  • GET :: /create-resource Show form for adding a resource to the website
  • POST :: /create-resource/submit Adds resource to the website, redirects to /{topic_endpoint}
  • GET :: /edit-resource Show form for editing a user's own resource (same as form to add resource, but input fields are populated with current entries)
  • POST :: /edit-resource/submit Updates user's resource, redirects to /{topic_endpoint}
  • GET :: /create-review Show form for adding a review to the website
  • POST :: /create-review/submit Adds review to website, redirects user to /{topic_endpoint}/{resource_endpoint}
  • /users/{username} Shows all resources that have been uploaded/reviewed by a specific user

To be implemented:

  • /reviews/recent Shows all reviews, by all users, in time order - most recent review first

How to run our website on your local machine

If you don't have postgres installed yet, you can use the following, very short guides: Linux Mac

Then:

  • Clone our repo & cd into the resource-sharing folder
  • Run npm install in your terminal
  • Log in to psql and create new database
  • Add a config.env file to the root directory:
export DB_URL=postgres://your-username:your-password@localhost:5432/data_gang
export DB_MAX_CONNECTIONS=2
  • Run npm start

About

Built for Founders & Coders - for members to share resources with each other


Languages

Language:JavaScript 62.5%Language:HTML 25.0%Language:PLpgSQL 10.0%Language:CSS 2.5%