/open-tacos

Rock climbing route catalog (openbeta.io)

Primary LanguageTypeScriptGNU Affero General Public License v3.0AGPL-3.0

OpenBeta logo

OpenBeta v0.9

Open source. Rock climbing. Catalog.

We're building a free and open source rock climbing catalog.

The project is currently in MVP stage.
We'd love to hear your feedback. Chat with the dev team on Discord.

Develop branch   License

Screenshot

Climb page

OpenBeta screenshot

Personal performance history

OpenBeta screenshot

Tech stack

  1. Backend GraphQL API (openbeta-graphql): Apollo GraphQL, MongoDB, Node.js.

  2. Frontend (this repo): React.js, Next.js, TailwindCSS.

High level architecture

Architecture overview

Live instances

Env Link Branch Content Build
Prod https://openbeta.io develop Complete DB Develop branch
Staging https://stg.openbeta.io develop Partial

How to build

Make sure you have the following tools installed on your computer:

Important: For frontend development work you don't need to set up the GraphQL API server server project (unless you intend to work on both).

  1. Download the repo to your local machine
git clone git@github.com:OpenBeta/open-tacos.git
  1. Build the code
cd open-tacos
git checkout develop
yarn install
  1. Run the app
yarn dev

The application is now available at http://localhost:3000

Alternate build method using Docker

If you just want to run the app locally without installing node, npm, etc., you can do so with Docker.

Requirements: Docker

docker compose up

The application is now available at http://localhost:3000. The project will rebuild automatically when you make changes to files in ./src dir.

Note: If you install new NPM packages, you will need to rebuild the docker image with

docker compose up --build

The application is now available at http://localhost:3000

Tips

API key errors

Some parts of the code such as user profiles, page edit and photo upload require additional API keys. Without them you'll see a bunch of errors in the log. If you want to work on those tasks, email viet at openbeta.io for API keys. See OpenBeta#389 for more info.

Full stack dev

By default, your local dev environment connects to our staging GraphQL API server. To connect your environment to the Graph API server running locally:

yarn dev-local

Typescript version warning

You might get build errors or be prompted to downgrade your version of TypeScript. This is due to the linter ts-standard using an older version of TypeScript. You can ignore the warning message.

Commit your work-in-progress

To commit without passing pre-build tests because you're doing a simple/unrelated change or simply wish to save your work-in-progres, run commit with the --no-verify flag. Example:

git commit --no-verify -am "saving my work before going climbing"

Linting errors

You might get linting errors when run yarn lint. To fix this, if you use VS Code, please make sure you have StandardJS extension installed and enabled.

How to contribute

See our general How to contribute guide for more details.

Support Us

  • Give this repo a star
  • Please consider making a donation today to help us pay for our infrastructure expenses ($150/month).

Contributors

Thanks goes to these wonderful people:

Viet Nguyen
Viet Nguyen

💻
Greg Hughes
Greg Hughes

💻
on3iropolos
on3iropolos

🤔 💵
Kevin Nadro
Kevin Nadro

💻
rytheranderson
rytheranderson

💻 🖋
Yannick Gingras
Yannick Gingras

🤔 🖋
Kendra Gibbons
Kendra Gibbons

💻
Gal Weinstock
Gal Weinstock

💻
Clinton Lunn
Clinton Lunn

💻 🤔
MichaelDimmitt
MichaelDimmitt

💻 🤔
Nate Hearnsberger
Nate Hearnsberger

💻 🤔
tittaenalg
tittaenalg

💻
Colin Gale
Colin Gale

💻 🤔
Kurk Villanueva
Kurk Villanueva

💻
umaxyon
umaxyon

💻
Jacob Struzik
Jacob Struzik

💻
Kevin
Kevin

💻
Osaf
Osaf

💻
xavier-kong
xavier-kong

💻
Brendan Downing
Brendan Downing

💻
admanny
admanny

💻
alex
alex

💻 🤔
Denis Lantsman
Denis Lantsman

💻
BeaulieuC
BeaulieuC

🎨 🤔
Daniel
Daniel

🤔
Prajwal
Prajwal

💻
Jetse Verschuren
Jetse Verschuren

💻 🤔
Siman Shrestha
Siman Shrestha

💻
Marcos A Rosas
Marcos A Rosas

💻
Kellen Busby
Kellen Busby

💻 🤔
Leonardo Montini
Leonardo Montini

💻
Matthew D'Souza
Matthew D'Souza

💻
Ilya Shaplyko
Ilya Shaplyko

💻
Chris Morin
Chris Morin

💻
Kittipong
Kittipong

💻
Evan Noronha
Evan Noronha

🐛
ted
ted

💻 🤔
Parth Parolekar
Parth Parolekar

💻
Junaid
Junaid

💻
KunalVerma2468
KunalVerma2468

💻
Scott Hoecker
Scott Hoecker

💻
vcbenj
vcbenj

💻
Ramez Salman
Ramez Salman

💻
Zac Holland
Zac Holland

🤔 💻
daniel-n-kaye
daniel-n-kaye

🤔
zkao
zkao

💻 🤔
Nathan Musoke
Nathan Musoke

🤔 💻
Uri Berman
Uri Berman

💻
Yun Ji
Yun Ji

🤔
Dane Shea
Dane Shea

💻 🤔 💵
Colb131
Colb131

🐛
Shubham Jadhav
Shubham Jadhav

💻
Joe Oliver
Joe Oliver

💻 🤔
Thomas Johnson
Thomas Johnson

💻
Giri Madhan
Giri Madhan

💻
Josh Zimmerman
Josh Zimmerman

💻
DavidW
DavidW

📆 🤔
Ali Haider
Ali Haider

💻
Shyam Tawli
Shyam Tawli

💻
SidV2
SidV2

💻
Bader Kanawati
Bader Kanawati

💻
draykhlin
draykhlin

📖
Sam Sikora
Sam Sikora

💻
Andrew Pritchett
Andrew Pritchett

💻 🤔
MiloudB
MiloudB

💻
Sarthak Kumar Shailendra
Sarthak Kumar Shailendra

💻
Syed Irfan Faraz
Syed Irfan Faraz

💻
Iacami Gevaerd
Iacami Gevaerd

🐛
Calvin Cheng
Calvin Cheng

🐛
robbyriley15
robbyriley15

💻 📖
Ali Muhammad
Ali Muhammad

💻
Henry Aviles
Henry Aviles

💻
ShravaniRoy
ShravaniRoy

💻
Isaac Alonso
Isaac Alonso

💻 🤔
Blake McCord
Blake McCord

💻 🤔

This project follows the all-contributors specification. Contributions of any kind welcome.

License

AGPL