Simplifying club check-ins at Hunter College.
Before setting up this project, ensure you have the following installed on your system:
- Node.js (v22 or higher) - Download here
- npm (comes with Node.js)
- Git - Download here
- Expo CLI: Install globally with
npm install -g @expo/cli - Expo Go app on your mobile device:
git clone <repository-url>
cd Peck-Innpm installCreate a .env file in the project root with your Firebase configuration:
EXPO_PUBLIC_FIREBASE_API_KEY=your_api_key_here
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your_project_id.firebaseapp.com
EXPO_PUBLIC_PROJECT_ID=your_project_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your_project_id.appspot.com
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
EXPO_PUBLIC_FIREBASE_APP_ID=your_app_id
EXPO_PUBLIC_FIREBASE_MEASUREMENT_ID=your_measurement_idnpx expo start --tunnelThis will start the Expo development server and show a QR code that you can scan with the Expo Go app on your mobile device.
Peck-In/
├── app/ # Expo Router pages (file-based routing)
│ ├── index.tsx # Home screen
│ ├── login.tsx # Authentication screen
│ ├── _layout.tsx # Root layout with providers
│ └── ...
├── components/ # Reusable UI components
├── hooks/ # Custom React hooks
│ └── useAuth.ts # Authentication hook
├── utils/ # Utility functions
│ ├── firebase.ts # Firebase configuration
│ ├── firebaseAuth.ts # Authentication utilities
│ └── firestore.ts # Database utilities
├── assets/ # Images, fonts, icons
├── .env # Environment variables (create this)
├── app.json # Expo configuration
├── package.json # Dependencies and scripts
└── tamagui.config.ts # UI library configuration
- Expo: React Native development platform
- Expo Router: File-based routing system
- TypeScript: Type-safe JavaScript
- Tamagui: Modern UI library with excellent performance
- Firebase Auth: User authentication
- Firestore: Real-time NoSQL database
- ESLint + Prettier: Code formatting and linting
-
Hot Reloading: The development server supports hot reloading. Save any file to see changes instantly.
-
Debugging:
- Use Expo DevTools in your browser
- Install React DevTools for component inspection
- Use console.log() or debugger statements
-
Testing on Device:
- Install Expo Go app on your phone
- Scan the QR code from the development server
- Shake your device to open the developer menu
-
Code Quality:
- Run
npm run lintbefore committing - Use
npm run formatto auto-fix formatting issues - Follow TypeScript best practices
- Run
- New Screens: Add
.tsxfiles in theapp/directory (Expo Router will automatically create routes) - Components: Create reusable components in
components/directory and Tamagui UI components. - Utilities: Add helper functions in
utils/directory - Database Operations: Use the utilities in
utils/firestore.tsfor Firestore operations