A React Native application that aims to provide UCSC students a centralized discussion board platform where students can coordinate dining hall/market swipes and post and save unwanted foods from other students to help reduce the number of Slug Points and food from going to waste.
- Node.js (v18 or higher)
- npm or yarn
- Expo CLI:
npm install -g expo-cli - Expo Go app (available on iOS and Android)
- (Optional) Xcode (macOS only) or Android Studio
- Clone the repository.
git clone https://github.com/kdelmo1/sano.git
cd sano
- Install dependencies.
npm install
To start the development server, run
npm start
This will open the Expo DevTools in your browser or give an output in the terminal. From there, you have four options:
- (Recommended) Run on physical device.
- Install the Expo Go app on your mobile device.
- Scan the QR code displayed in the terminal or Expo DevToools.
- The app will load on your device through the ExpoGo app.
- Run on iOS Simulator (ensure you have Xcode installed on a device running macOS).
npm run ios - Run on Android Simulator (ensure yo have an Android emulator running before executing the command).
npm run android - Run on web.
npm run web
sano/
├── src/
├──── assets/ # Images and icons.
├──── context/ # React Context providers for global state.
├──── lib/ # Third-party service configurations and clients.
├──── screens/ # Screen components.
├──── styles/ # Shared styles and theme definitions.
├── App.tsx # Root component.
- Framework: Expo.
- Language: TypeScript.
- Frontend: React Native.
- Backend: Supabase.
Check for linting errors using:
npm run lint
Auto-fix linting issues using:
npm run lint:fix
This project uses TypeScript. Make sure to define types for new components and functions.
If you encounter caching issues, try:
expo start -cThis clears the Metro bundler cache.
If you're having problems after pulling new changes:
rm -rf node_modules package-lock.json
npm installVerify that supabase.ts contains the correct SUPABASE_URL and SUPABASE_ANON_KEY credentials.
- Create a feature branch:
git checkout -b feature/my-feature. - Make your changes and ensure linting passes:
npm run lint. - Commit your changes:
git commit -am 'Add new feature'. - Push to the branch:
git push origin feature/my-feature. - Submit a pull request.
npm start- Start the Expo development server.npm run ios- Run on iOS simulator.npm run android- Run on Android emulator.npm run web- Run in web browser.npm run lint- Check code quality.npm run lint:fix- Auto-fix linting issues.
For questions or issues, contact [email protected] or message delmoh on Discord.