A cross-platform mobile application for University of Houston clubs built with Expo and React Native. This app allows students to discover and explore university clubs with a modern, intuitive interface.
Before you begin, ensure you have the following installed:
- Node.js (version 18 or higher) - Download here
- npm or yarn package manager
- Expo CLI (optional but recommended)
- Git - Download here
For mobile development:
- iOS: Xcode (macOS only) or Expo Go app
- Android: Android Studio or Expo Go app
-
Clone the repository
git clone https://github.com/usmaan677/connext cd uh-clubs -
Install dependencies
npm install
-
Start the development server
npm start # or npx expo start -
Run on your preferred platform
- iOS Simulator: Press
iin the terminal or runnpm run ios - Android Emulator: Press
ain the terminal or runnpm run android - Web Browser: Press
win the terminal or runnpm run web - Physical Device: Scan the QR code with Expo Go app
- iOS Simulator: Press
This app supports:
- ✅ iOS (iPhone & iPad)
- ✅ Android
- ✅ Web browsers
- ✅ Both light and dark themes
npm start- Start the Expo development servernpm run android- Run on Android emulator/devicenpm run ios- Run on iOS simulator/devicenpm run web- Run in web browsernpm run lint- Run ESLint for code qualitynpm run reset-project- Reset to blank project template
uh-clubs/
├── app/ # App screens and navigation
│ ├── (tabs)/ # Tab-based navigation
│ │ ├── index.tsx # Home/main screen
│ │ └── explore.tsx # Explore clubs screen
│ ├── _layout.tsx # Root layout
│ └── modal.tsx # Modal screens
├── assets/ # Static assets (images, icons)
├── components/ # Reusable React components
│ └── ui/ # UI component library
├── constants/ # App constants and themes
├── hooks/ # Custom React hooks
└── connext/ # Additional app modules
- Tab Navigation: Easy navigation between main app sections
- Dark/Light Theme: Automatic theme switching based on system preferences
- Cross-Platform: Runs on iOS, Android, and web
- Modern UI: Built with Expo's latest components and design patterns
- TypeScript: Full type safety and better development experience
- Framework: Expo SDK ~54.0
- Language: TypeScript
- UI Library: React Native with Expo components
- Navigation: Expo Router (file-based routing)
- Styling: React Native StyleSheet
- Icons: Expo Vector Icons
- Development: ESLint for code quality
- Expo Router: File-based navigation system
- React Navigation: Tab and stack navigation
- Expo Vector Icons: Icon library
- React Native Reanimated: Smooth animations
- Expo Haptics: Tactile feedback
-
Metro bundler issues
npx expo start --clear
-
Node modules issues
rm -rf node_modules npm install
-
iOS build issues
cd ios && pod install && cd ..
-
Android build issues
- Ensure Android Studio and SDK are properly installed
- Check that ANDROID_HOME environment variable is set
- Expo Documentation: https://docs.expo.dev/
- React Native Docs: https://reactnative.dev/
- Expo Discord: https://chat.expo.dev
- For new features: Create a new screen in the
app/directory - For reusable components: Add them to the
components/directory - For styling: Use the theme constants in
constants/theme.ts - For navigation: Expo Router uses file-based routing - just create files in
app/
This project is private and proprietary.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Happy coding! 🚀