ladunjexa / expo-reactnative-aora

Aora is a social media platform that allows users to share AI-generated videos with the community and discover trending videos. πŸ€–

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

React Native Aora

Latest release Stars Fork GitHub commits Pull requests

demo

ladunjexa License Top Language Contributors Release PRs deployment Known Vulnerabilities

πŸ“ Description

Aora is a social media platform that allows users to share AI-generated videos with the community and discover trending videos.

Folder Structure
reactnative-aora/
β”œβ”€β”€ .vscode/
β”œ   └── settings.json
β”œβ”€β”€ app/
β”œ   β”œβ”€β”€ _layout.tsx
β”œ   β”œβ”€β”€ index.tsx
β”œ   β”œβ”€β”€ (auth)/
β”œ   β”œ   β”œβ”€β”€ _layout.tsx
β”œ   β”œ   β”œβ”€β”€ sign-in.tsx
β”œ   β”œ   └── sign-up.tsx
β”œ   β”œβ”€β”€ (tabs)/
β”œ   β”œ   β”œβ”€β”€ layout.tsx
β”œ   β”œ   β”œβ”€β”€ bookmark.tsx
β”œ   β”œ   β”œβ”€β”€ create.tsx
β”œ   β”œ   β”œβ”€β”€ home.tsx
β”œ   β”œ   └── profile.tsx
β”œ   └── search/
β”œ       └── [query].tsx
β”œβ”€β”€ components/
β”œ   β”œβ”€β”€ atoms/
β”œ   β”œ   β”œβ”€β”€ custom-button.tsx
β”œ   β”œ   β”œβ”€β”€ empty-state.tsx
β”œ   β”œ   └── info-box.tsx
β”œ   β”œβ”€β”€ cards/
β”œ   β”œ   └── video-card.tsx
β”œ   β”œβ”€β”€ layout/
β”œ   β”œ   └── tab-icon.tsx
β”œ   β”œβ”€β”€ shared/
β”œ   β”œ   β”œβ”€β”€ form-field.tsx
β”œ   β”œ   └── search-input.tsx
β”œ   └── trending/
β”œ       β”œβ”€β”€ trending-item.tsx
β”œ       └── index.tsx
β”œβ”€β”€ constants/
β”œ   β”œβ”€β”€ icons.ts
β”œ   β”œβ”€β”€ images.ts
β”œ   └── index.ts
β”œβ”€β”€ context/
β”œ   └── global-provider.tsx
β”œβ”€β”€ hooks/
β”œ   └── use-appwrite.ts
β”œβ”€β”€ lib/
β”œ   β”œβ”€β”€ appwrite.ts
β”œ   β”œβ”€β”€ animations.ts
β”œ   └── actions/
β”œ       β”œβ”€β”€ post.action.ts
β”œ       β”œβ”€β”€ user.action.ts
β”œ       β”œβ”€β”€ file.action.ts
β”œ       └── shared.types.d.ts
β”œβ”€β”€ assets/
β”œ   β”œβ”€β”€ adaptive-icon.png
β”œ   β”œβ”€β”€ favicon.png
β”œ   β”œβ”€β”€ icon.png
β”œ   β”œβ”€β”€ splash.png
β”œ   β”œβ”€β”€ fonts/[[...]].png
β”œ   β”œβ”€β”€ icons/[[...]].ttf
β”œ   └── images/[[...]].png
β”œβ”€β”€ types/
β”œ   └── index.d.ts
β”œβ”€β”€ .env
β”œβ”€β”€ .eslintignore
β”œβ”€β”€ .eslintrc.js
β”œβ”€β”€ .gitignore
β”œβ”€β”€ .prettierignore
β”œβ”€β”€ .prettierrc
β”œβ”€β”€ app.json
β”œβ”€β”€ babel.config.js
β”œβ”€β”€ nativewind-env.d.ts
β”œβ”€β”€ package.json
β”œβ”€β”€ README.md
β”œβ”€β”€ tailwind.config.ts
└── tsconfig.ts

πŸ“– Table of Contents

Table of Contents

✨ Technologies Used

Aora is built using the following technologies:
  • TypeScript: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
  • Expo: Expo is an open-source platform for making universal native apps for Android, iOS, and the web with JavaScript and React.
  • React Native: React Native is an open-source mobile application framework created by Facebook.
  • Appwrite: Appwrite is an open-source backend server that helps you build modern applications much faster with real-time APIs for authentication, databases, files storage, and much more.
  • NativeWind: NativeWind is a utility-first CSS framework for React Native based on Tailwind CSS.
  • React Native Animatable: React Native Animatable is a library for React Native that provides animations for React Native components.
  • Tailwind CSS: Tailwind CSS is a utility-first CSS framework for rapidly building custom user interfaces.
  • ESLint: ESLint is a static code analysis tool for identifying problematic patterns found in JavaScript code.
  • Prettier: Prettier is an opinionated code formatter.

Technologies Used

🧰 Get Started

To get this project up and running in your development environment, follow these step-by-step instructions.

πŸ“‹ Prerequisites

In order to install and run this project locally, you would need to have the following installed on your local machine.

βš™οΈ Installation and Run Locally

Step 0:

Important

  • the application uses Appwrite for Authentication and User Management, therefore, you need to create Appwrite account here and sets the environment variables in the .env file.

Step 1:

Download or clone this repo by using the link below:

git clone https://github.com/ladunjexa/expo-reactnative-aora.git

Step 2:

Execute the following command in the root directory of the downloaded repo in order to install dependencies:

npm install

Step 3:

Execute the following command in order to run the development server locally:

npm start

Step 4:

Open http://localhost:8081 with your browser to see the result.

πŸš€ Launching

Launch on Expo Go (recommended)

You can deploy this app on Expo Go by scanning the QR code generated by the Expo development server.

npx expo start

Launch on Android

You can deploy this app on Android by running the following command:

npm run android

Launch on iOS

You can deploy this app on iOS by running the following command:

npm run ios

πŸ“œ Scripts

All scripts are defined in the package.json file. Here is a list of all scripts:

Script Action
npm install & npx expo install Installs dependencies
npm run start Start expo development server
npm run android Start expo development server on Android
npm run ios Start expo development server on iOS
npm run web Start expo development server on Web
npm run ts:check Check TypeScript types
npm run lint Run ESLint

πŸ”’ Environment Variables

Environment variables[^7] can be used for configuration. They must be set before running the app.

Environment variables are variables that are set in the operating system or shell, typically used to configure programs.

Aora uses Appwrite as a backend service. You need to create an account on Appwrite and get the required credentials to run the app.

Create a .env file in the root directory of the project and add the following environment variables:

EXPO_PUBLIC_APPWRITE_ENDPOINT=<APPWRITE_ENDPOINT>
EXPO_PUBLIC_APPWRITE_PLATFORM=<APPWRITE_PLATFORM>
EXPO_PUBLIC_APPWRITE_PROJECT_ID=<APPWRITE_PROJECT_ID>
EXPO_PUBLIC_APPWRITE_DATABASE_ID=<APPWRITE_DATABASE_ID>
EXPO_PUBLIC_APPWRITE_USER_COLLECTION_ID=<APPWRITE_USER_COLLECTION_ID>
EXPO_PUBLIC_APPWRITE_VIDEO_COLLECTION_ID=<APPWRITE_VIDEO_COLLECTION_ID>
EXPO_PUBLIC_APPWRITE_STORAGE_ID=<APPWRITE_STORAGE_ID>

πŸ”§ Contributing

contributors

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

To fix a bug or enhance an existing module, follow these steps:

  1. Fork the repo
  2. Create a new branch (git checkout -b improve-feature)
  3. Make the appropriate changes in the files
  4. Commit your changes (git commit -am 'Improve feature')
  5. Push to the branch (git push origin improve-feature)
  6. Create a Pull Request πŸŽ‰

πŸ“© Bug / Feature Request

If you find a bug (failure of a module to execute its intended function), kindly open an issue here by including the issue with a title and clear description.

If you'd like to request a new function, feel free to do so by opening an issue here. Please include sample queries and their corresponding results.

πŸ’Ž Acknowledgements

I'd like to express my gratitude to the following people who helped me with this project and made it possible:

πŸ“ž Contact Us

Telegram LinkedIn Instagram Discord

πŸ“‹ License

Aora is open source software licensed as MIT and is free to use β€” See LICENSE for more details.

About

Aora is a social media platform that allows users to share AI-generated videos with the community and discover trending videos. πŸ€–


Languages

Language:TypeScript 97.0%Language:JavaScript 3.0%