Skip to content

expofast/100cims

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

100cims

100cims is a mobile mountaineering app built with Expo, powered by expofast.app.

This repo is part of the ExpoFast platform — a suite of tools to build, launch, and scale React Native apps 10x faster. From icon/splash generation to analytics and store asset automation — check it out.

🏔️ What is 100cims?

100cims is a mobile app to track your mountain summits and join hiking challenges. Users can:

  • Log mountain summits and view their progress
  • Join curated regional hiking challenges (Catalonia, GR-20, Alps…)
  • Organize group hikes via Plans and coordinate through Chat
  • Earn points based on mountain difficulty
  • Climb the rankings and celebrate your achievements

🧑‍💻 Getting Started

yarn

Then:

yarn start # or: expo start

🌐 Environment Variables

Before running the project, leverage the.env.example file to fill the required environment variables:

EXPO_PUBLIC_API_URL=http://localhost:8081/
DATABASE_URL=postgresql://admin:admin@localhost:5432/my_local_db

MY_AWS_ACCESS_KEY=
AWS_ACCESS_SECRET_KEY=
AWS_PUBLIC_BUCKET_NAME=
AWS_BUCKET_REGION=

APP_NAME=

SHEETS_CLIENT_EMAIL=
SHEETS_PRIVATE_KEY=

EXPO_PUBLIC_EXPOFAST_ANALYTICS_KEY=
  • AWS_* → used to store summit images on S3.
  • SHEETS_* → optional: logs API errors to Google Sheets.
  • EXPO_PUBLIC_EXPOFAST_ANALYTICS_KEY → integrates expofast analytics.

🔐 Auth

Authentication supports both Google and Apple sign-in.

  • For Google OAuth, you need:

    EXPO_PUBLIC_ANDROID_CLIENT_ID=
    EXPO_PUBLIC_IOS_CLIENT_ID=
    EXPO_PUBLIC_WEB_CLIENT_ID=

    Also, generate and include your google-services.json.

  • For Apple OAuth, follow Expo’s official Apple Auth setup guide.

  • For JWT auth, generate a UUID and assign it to AUTH_SECRET:

    AUTH_SECRET=

🌍 Translations

To update translations:

yarn translations

This will extract messages and update translations/raw-en.json. Copy the new keys manually into ca.json and es.json.

💄 Database

yarn db:local:up     # Starts local DB via Docker
yarn db:push         # Push latest schema to the DB (use correct env vars)

Then, manually run the SQL in api/db/init-script.sql to initialize basic data.

🩱 Stack Highlights

  • Expo + React Native: unified dev workflow across iOS/Android/web
  • expo-router: File-system routing like Next.js
  • Elysia.js + Drizzle ORM: API routes with type-safety
  • eden: end-to-end API types across client/server
  • nativewind: Tailwind-style utility classes in React Native

📦 Try the app

🚀 Powered by ExpoFast

Want to build apps like this, faster? Visit expofast.app.

This project uses the full suite of ExpoFast services including analytics, asset automation, and store review flows.


Made with ❤️ by @jvidalv

🖼️ Media

media 1 media 2 media 3

About

React Native mobile app, 100cims allows you to track your mountain summits and join hiking challenges

Topics

Resources

License

Stars

Watchers

Forks

Contributors 3

  •  
  •  
  •