Soular is a mobile application designed to raise awareness about climate change, bring eco-conscious individuals together to take action, and provide users with personalized insights and recommendations. The app integrates features such as carbon footprint calculation, social media sharing, user-driven event participation system, and AI-powered advice.
-
Clone the repository
git clone https://github.com/endernoke/soular.git cd soular
-
Install dependencies
npm install
-
Configure environment variables
Create a
.env
file in the project directory and add your Supabase credentianodels. You can find these in your Supabase project settings.EXPO_PUBLIC_SUPABASE_URL=https://your-supabase-url.supabase.co EXPO_PUBLIC_SUPABASE_ANON_KEY=your-anon-key
-
Initialize the database
Run the SQL commands in
supabase-setup.sql
in your Supabase project's SQL editor to set up:- Database tables
- Row Level Security (RLS) policies
- Storage buckets
- Triggers and functions
Note
If you are part of the dev team, the database schema is already set up. You can skip this step.
-
Start the app
npx expo start
This will start the Expo development server. Follow the instructions in the terminal to run the app on your device or emulator.
Tip
NativeWind is configured for the app, so you can directly use TailWindCSS classes in your components. Note that some classes may not work as expected on certain components, in which case you can simply switch back to using React Native styles.
Important
This project uses Expo Router for file-based routing.
src/
- Main source code directoryapp/
- Application screens using file-based routing(app)/
- Protected app routes (requires authentication to access)(tabs)/
- Bottom tab navigation
auth/
- Authentication screens
components/
- Reusable React componentslib/
- Core functionality and configurationauth.tsx
- Authentication context and hookssupabase.ts
- Supabase client configuration
types/
- TypeScript type definitionsglobal.css
- Global styles using TailwindCSS/NativeWind
assets/
- Static assetsimages/
- App icons and imagesfonts/
- Custom fonts
docs/
- Documentation and schemas (mainly intended for LLMs)
See llms/DATABASE.md
for detailed information about:
- Database tables and relationships
- Row Level Security (RLS) policies
- Storage configuration
- Data validation rules