Skip to content

Make your own climbing wall! React, Typescript, Redux Toolkit, MERN stack.

Notifications You must be signed in to change notification settings

dataseyo/HomeWall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 

Repository files navigation

Description

A climbing wall app where climbers can customize walls with holds, save walls, and save routes on each wall for later.

Live at: AWS Homewall App

Tech Stack

React with Typescript, Node, MongoDB, Express, Mongoose, Redux Toolkit, Vite.

Current Progress

Road Map

  • refactor wall logic into Redux reducers
  • persist wall state in redux persist local storage
  • create walls (set of saved individual walls) redux logic
  • create walls UI to display wall choices
  • add save wall functionality
  • update walls model with name and id (so it can be deleted/edited)
  • update walls logic and UI to allow user to choose wall name
  • allow for rotation of holds (need to add degreeRotated property to Hold type, and use it as a prop on the div to transform: rotate(${degreeRotated}))
  • create route redux logic
  • hook up route redux logic to route UI on /walls
  • routes tab should show routes available on current wall
  • connect to MongoDB
  • add save route functionality
  • make more holds in figma
  • allow for users to vary the wall grid size (standard is 10 x 10)
  • allow users to change wall color and background
  • refactor Wall component to separate the messy functional logic from the UI
  • refactor local CSS into more global variable styles in index.css: padding, colors, margins, etc.
  • migrate to React Native
  • add hold maker feature
  • allow users to follow other users, and see/like/save their walls
  • allow for larger holds to be used that take up multiple grid sites
  • allow volumes to be placed on wall and for holds to be placed on volumes

Issues

  • the way that I ended up rendering different holds inside the hold choice modal is probably an anti-pattern and not even close to automated. I was having trouble rendering references to them from a json file and typescript wasn't happy with that solution, so I was forced to do it manually for now.

State Structure

  • Redux persist store provides state to app
  • wallSlice, wallsSlice, and routesSlice create reducers that get exported to components and receive actions and their payloads from the components (Walls, Wall, and Routes) that call them

About

Make your own climbing wall! React, Typescript, Redux Toolkit, MERN stack.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages