Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/capstone-projects-2023-spring/project-tool-shed
- Owner: Capstone-Projects-2023-Spring
- Created: 2023-01-31T14:07:24.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-01T22:22:50.000Z (over 1 year ago)
- Last Synced: 2024-11-01T05:06:32.497Z (about 2 months ago)
- Topics: docker, expressjs, google-maps-api, nunjucks, postgresql, reactjs, rent-sell, tools, webapp
- Language: Shell
- Homepage:
- Size: 5.66 MB
- Stars: 3
- Watchers: 3
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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
Aaron Thomas
Cameron Metzinger
Destinee Sheung
Justin Gallagher
Kat Tejada
Nathaniel Symer