Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/capstone-projects-2023-spring/project-tool-shed

Tool Shed is a website that enables individuals to post their tools and offer them for rent within communities
https://github.com/capstone-projects-2023-spring/project-tool-shed

docker expressjs google-maps-api nunjucks postgresql reactjs rent-sell tools webapp

Last synced: about 2 months ago
JSON representation

Tool Shed is a website that enables individuals to post their tools and offer them for rent within communities

Awesome Lists containing this project

README

        

[![Open in Codespaces](https://classroom.github.com/assets/launch-codespace-f4981d0f882b2a3f0472912d15f9806d57e124e0fc890972558857b51b24a6f9.svg)](https://classroom.github.com/open-in-codespaces?assignment_repo_id=9939989)

# Toolshed
[![Report Issue on Jira](https://img.shields.io/badge/Report%20Issues-Jira-0052CC?style=flat&logo=jira-software)](https://temple-cis-projects-in-cs.atlassian.net/jira/software/c/projects/DT/issues)
[![Deploy Docs](https://github.com/Capstone-Projects-2023-Spring/project-tool-shed/actions/workflows/deploy.yml/badge.svg)](https://github.com/Capstone-Projects-2023-Spring/project-tool-shed/actions/workflows/deploy.yml)
[![Documentation Website Link](https://img.shields.io/badge/-Documentation%20Website-brightgreen)](https://capstone-projects-2023-spring.github.io/project-tool-shed/)

## Running Production Website
Simply visit this link: Toolshed Website. Happy tool hunting!

## Running Locally

npm install
npm run local

## Code Tree

./
| index.js # project entry point
| boilerplate.js # Core webserver stuff
| models.js # where Sequelize models are defined
| routes.js # where routes are defined.
| webpack.config.js # webpack config file
| webpack/ # frontend code that gets bundled via webpack
| public/ # gets served raw under ://:/public/
| scripts/ # devops scripts
| data/ # data you can use, not explicity used by app
| validators/ # code for validating input
+-- templates/
| | base.html # base template file
| | ... more .html files that extend base.html

## Generating documentation

To generate up-to-date documentation, run `npm run docs`. This will create the necessary .md file for the documentation site.

## Keywords

Section 704, JavaScript, Google Maps API, Node, NodeJS, Database, Buy, Sell, Trade, Tool Shed, Web-based Application

## Project Abstract

This document proposes a web-based application that will allow its users to share, buy, sell, and trade tools of all kinds. Once users are registered with Tool Shed accounts, they can list their own tools and equipment available to the community. Users will also be able to see what tools are available from members of the surrounding community. Tool Shed is meant to be a low-cost solution for high-cost tools making them available at a fraction of the cost set by the owner.

## High Level Requirement

Users will begin by registering online accounts using the Create Account option. After accounts are created, the user will manage tools they own and want to make available to the public, setting a daily rate, and availability. Users will also be able to search the local community using keywords like, “Table saw,” or “Miter Saw,” and view low cost locally owned tools available. Once a tool is selected for either buy, rent, or sell, the users will be able to make a request with the owner of the tool and agree on a data range and price. Users will be prompted to return the tool within an agreed window set by both users.

## Conceptual Design

This application will be programmed purely in javacript (frontend and backend). Postgres will be the database, and web browsers will request pages and data from the backend (that queries the database) that are rendered via frontend code.

## Background

With many employees working from home and setting up home offices, Do It Yourself (DIY) projects are at an all-time high. With internet resources and basic knowledge, you can get a significant amount of work done without hiring an expensive professional to complete the job. The alternative to purchasing an expensive tool for a few days of use could be renting the tool from someone in the local community that has the tool available and not in use. Users will profit from what is sitting in their tool shed while the items are not being used. This will help keep the cost low for DIY projects.

## Required Resources

This is a purely JavaScript web application project. To run locally (or ill-advisedly in production ;p), all you need is to install Docker and NodeJS >=v19. If you're running the server in production, you only need NodeJS should stop using the dockerized postgres and use a real postgres. You can configure how the server connects to the database via [PostgreSQL env vars](https://www.postgresql.org/docs/current/libpq-envars.html)..

To run this project, you'll also need to run [this geocoder](https://github.com/natesymer/gubmint).

## Collaborators



aaronthom123


Aaron Thomas




Camsera


Cameron Metzinger




lokyen


Destinee Sheung




JustinG512


Justin Gallagher




zktejaka


Kat Tejada




natesymer


Nathaniel Symer