Here is the folder structure of Aora.
aora-app/
|- app/
|-- (auth)/
|-- (tabs)/
|-- search/
|-- _layout.jsx
|-- index.jsx
|- assets/
|-- fonts/
|-- icons/
|-- images/
|- components/
|-- custom-button.jsx
|-- empty-state.jsx
|-- form-field.jsx
|-- info-box.jsx
|-- search-input.jsx
|-- trending.jsx
|-- video-card.jsx
|- constants/
|-- icons.js
|-- images.js
|-- index.js
|-- links.js
|- context/
|-- global-provider.jsx
|- .env.local
|- .env.example
|- .gitignore
|- app.json
|- eas.json
|- babel.config.json
|- package-lock.json
|- package.json
|- tailwind.config.js
|- tsconfig.json
- Make sure Git and NodeJS is installed.
- Clone this repository to your local computer.
- Create
.env.local
file in root folder. - Contents of
.env.local
:
# .env.local
# appwrite project
EXPO_PUBLIC_APPWRITE_PLATFORM=com.example.aora
EXPO_PUBLIC_APPWRITE_PROJECT_ID=000000000000000000000000000
# appwrite database
EXPO_PUBLIC_APPWRITE_DATABASE_ID=000000000000000000000000000
# appwrite collection
EXPO_PUBLIC_APPWRITE_COLLECTION_ID=000000000000000000000000000
# appwrite video
EXPO_PUBLIC_APPWRITE_VIDEO_ID=000000000000000000000000000
# appwrite storage
EXPO_PUBLIC_APPWRITE_STORAGE_ID=000000000000000000000000000
-
Open terminal in root directory. Run
npm install --legacy-peer-deps
oryarn install --legacy-peer-deps
. -
Install Expo Cli using
npm i -g expo-cli
oryarn global add expo-cli
to initialize your app on Expo.
-
Install Appwrite:
- If you haven't already, follow the Appwrite installation guide to set up Appwrite on your server or use Appwrite Cloud.
-
Create a New Project:
- Log in to your Appwrite console.
- Click on the "Add Project" button.
- Name your project (e.g., "Aora") and click "Create".
- Navigate to Your Project:
- Go to the project you just created.
- Copy the Project ID:
- In the project settings, you will find the "Project ID". Copy this ID.
- Add a New Platform:
- Within your project, navigate to the "Platforms" section.
- Click on "Add Platform" and select the appropriate platform for your project (e.g., Web, iOS, Android).
- Provide the necessary details such as domain or package name (e.g.,
com.example.aora
). - Save the platform settings.
- Copy the Platform ID:
- After adding the platform, note the Platform ID (if provided) or use the domain/package name you added.
- Create a New Database:
- In your project dashboard, navigate to "Database".
- Click on "Add Database", provide a name for your database, and save it.
- Copy the Database ID:
- After creating the database, copy the Database ID.
- Create a New Collection:
- Within the Database section, click on the "Add Collection" button.
- Provide a name for your collection and configure the necessary attributes and permissions.
- Save the collection.
- Copy the Collection ID:
- After creating the collection, copy the Collection ID.
- Upload a Video File (if applicable):
- Navigate to the "Storage" section in your Appwrite console.
- Click on "Add File" and upload your video file.
- Copy the Video File ID:
- After the upload is complete, copy the File ID of the video.
-
Configure Storage Bucket (if applicable):
- In the "Storage" section, you may need to create a new bucket or use the default bucket.
- Ensure the bucket is configured to store your required files.
-
Copy the Storage ID:
- Note the Storage Bucket ID or the specific ID used for storage configuration.
-
Now app is fully configured π and you can start using this app using
expo start
.
- Expo Documentation: https://docs.expo.dev/
- React Native Documentation: https://reactnative.dev/docs/
- Clerk Documentation: https://clerk.com/docs
NOTE: Please make sure to keep your API keys and configuration values secure and do not expose them publicly.
You might encounter some bugs while using this app. You are more than welcome to contribute. Just submit changes via pull request and I will review them before merging. Make sure you follow community guidelines.
Useful resources and libraries that are used in Aora:
- @types/react
- Expo
- Expo AV
- Expo Constants
- Expo Document Picker
- Expo Image Picker
- Expo Linking
- Expo Navigation Bar
- Expo Router
- Expo Status Bar
- Expo Updates
- NativeWind
- React
- React Native
- React Native Animatable
- React Native Appwrite
- React Native Safe Area Context
- React Native Screens
- React Native URL Polyfill
- TypeScript
- Babel Core
- Tailwind CSS
You can also give this repository a star to show more people and they can use this repository.