Table of Contents
A web application connecting in-person climbing gym patrons. A working example of NodeJS being used for human computer interaction.
Imagine you own a rock climbing gym and you want to encourage your patrons to provide feedback on the climbing routes provided. Climb Grader allows you to put up simple QR-codes next to the climbing route as you normally would with difficulty ratings. These QR codes allow members to virtually review, grade, and ultimately providing you and your route setters valuable gym member feedback on the variety of climbing routes and opportunities in the gym.
This section should list any major frameworks/libraries used to bootstrap your project. Leave any add-ons/plugins for the acknowledgements section. Here are a few examples.
- NodeJS
- ExpressJs
- HandleBarsJS
- MongoDB
- skeleton.css
DataBase Collections Schema in JSon
{
"gyms" : [{
"_id": "ObjectId()",
"date_created" : "2022-06-15T05:17:56.653+00:00",
"name" : "The Climbing Gyms Name",
"gym_associate" : "62a96b842e99e2ac7707ce69",
"setter_code" : "XXXXXX"
}],
"routes" : [{
"_id" : "ObjectId()",
"gym_code" : "ObjectID('Gym ID')",
"date_created" : "2022-01-01T00:00:00.000+00:00",
"expire_at" : "2022-01-31T00:00:00.000+00:00",
"climb_code" : "123456",
"setter_name" : "Mr.RouteSetter",
"grade" : {
"system": "V-Scale",
"setter" : "5"
},
"votes" : [{
"id": "ObjectId('Mr.RouteSetter ID')",
"grade" : "5"
}]
}],
"users" : [
"_id" : "ObjectId()",
"last_ip" : "192.168.0.110",
"date_created" : "2022-06-15T05:20:05.367+00:00",
"email" : "email@gmail.com",
"definitely_not_a_password_hash" : "$2b$10$FfjtEF7ONncUoWRObUCUz.LZZbaHtiuMjzl1YB0tvNTVO3s6ZgjBC",
"definitely_not_a_password_salt" : "$2b$10$FfjtEF7ONncUoWRObUCUz.",
"gyms" : [{
"0" : "62a96c055438f5c080486dbc"
}]
}]
}Below is instruction how to start running the web-app.
- (have npm first) Clone the repo
git clone https://github.com/your_username_/Project-Name.git
- Install/Update NPM packages
npm install
- Enter your MongoDB Connection String in a new file at
private/.envCONNECTION_STR = "Your Mongo DB Connection URL"; HCAPTCHA_SITE_KEY = "Your hCaptha site key"; HCAPTCHA_SECRET = "Your hCaptha secret"; SESSION_SECRET = "Any random string unique the the environment"; IP = "ip or ipv4 the server is running on"; PORT = "port :|";
- Start with npm
npm start
- Main logo/webdesign with user accounts
- Gym QR codes and climbing route setter QR Codes
- Captcha check (spam reduction)
- Individual user ratings by IP or Account (spam reduction)
- Gym's and gym climbing routes expirations
- user ratings statistics
- Add full list of gym routes
- Let gym owners upload indoor map of the gym
- Uploading of gym map image
- Categorize climbing routes by walls
Copyright 2023 Emerson Philipp
All rights reserved. This work may not be reproduced or redistributed in whole or in part without express written permission from [your name].
This repository is provided for educational and informational purposes only. Any use of the code or content within this repository is at your own risk. [Your name] makes no representations or warranties about the suitability, completeness, timeliness, reliability, legality, or accuracy of the code or content within this repository.