Skip to content

Aora is a comprehensive React Native Expo app for video streaming and sharing. It features seamless video playback, robust authentication, dynamic home screens with animations, full-text search, and user-friendly interfaces. Users can upload, favorite, and search for videos, while enjoying smooth navigation and responsive design across devices.

Notifications You must be signed in to change notification settings

Bharathkdev/full_stack_expo_app

Repository files navigation

aora_app_main aora_app_home aora_app_upload_video aora_app_profile
react.js expo appwrite nativewind

Aora - A Full Stack React Native Expo Video Streaming and Sharing App

  1. 🤖 Introduction
  2. ⚙️ Tech Stack
  3. 🔋 Features
  4. 🤸 Quick Start
  5. 🕸️ Snippets

Built with React Native Expo for seamless user experiences, Animatable for captivating animations, and integrated with the dependable backend systems of Appwrite, this app showcases impressive design and functionality, enabling seamless sharing of any videos within the community.

  • React Native
  • Expo
  • Typescript
  • Nativewind
  • Animatable
  • Appwrite

👉 Onboarding Screen: Engaging graphics and clear instructions welcome users to the app.

👉 Robust Authentication & Authorization System: Secure email login safeguards user accounts with screens like Sign-in, Sign-up and Sign-out.

👉 Dynamic Home Screen with Animated Flat List: Smoothly animated flat list showcases the latest videos for seamless browsing.

👉 Pull-to-Refresh Functionality: Users can refresh content with a simple pull gesture for up-to-date information.

👉 Full-Text Search Capability: Efficiently search through videos with real-time suggestions and instant results.

👉 Tab Navigation: Navigate between sections like Home, Search, Bookmark, Create and Profile with ease using tab navigation.

👉 Post Creation Screen for Uploading Media: Upload video and image posts directly from the app with integrated media selection for both Android and iOS.

👉 Video Streaming: Enjoy seamless video streaming with Expo AV. Easily play videos with smooth transitions, utilize built-in video controls for a user-friendly experience, and automatic loading indicators for an uninterrupted viewing experience.

👉 Favorite Videos: A dedicated Bookmark screen where you can find all the videos you've marked as favorites. Each video will feature a heart icon to add or remove it from your favorites. Additionally, liked videos are indicated throughout all screens in the app.

👉 Profile Screen with Detailed Insights: View account details and activity, including uploaded videos and follower count, for a personalized experience.

👉 Responsiveness: Smooth performance and adaptability across various devices and screen sizes for a consistent user experience.

👉 Animations: Dynamic animations using the Animatable library to enhance user interaction and engagement throughout the app's UI.

and many more, including code architecture and reusability

Follow these steps to set up the project locally on your machine.

Prerequisites

Make sure you have the following installed on your machine:

Cloning the Repository

git clone https://github.com/Bharathkdev/full_stack_expo_app.git
cd full_stack_expo_app

Installation

Install the project dependencies using npm:

npm install

Running the Project

npm start

Expo Go

Download the Expo Go app onto your device, then use it to scan the QR code from Terminal and run.

tailwind.config.js
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: ["./app/**/*.{js,jsx,ts,tsx}", "./components/**/*.{js,jsx,ts,tsx}"],
  theme: {
    extend: {
      colors: {
        primary: "#161622",
        secondary: {
          DEFAULT: "#FF9C01",
          100: "#FF9001",
          200: "#FF8E01",
        },
        black: {
          DEFAULT: "#000",
          100: "#1E1E2D",
          200: "#232533",
        },
        gray: {
          100: "#CDCDE0",
        },
      },
      fontFamily: {
        pthin: ["Poppins-Thin", "sans-serif"],
        pextralight: ["Poppins-ExtraLight", "sans-serif"],
        plight: ["Poppins-Light", "sans-serif"],
        pregular: ["Poppins-Regular", "sans-serif"],
        pmedium: ["Poppins-Medium", "sans-serif"],
        psemibold: ["Poppins-SemiBold", "sans-serif"],
        pbold: ["Poppins-Bold", "sans-serif"],
        pextrabold: ["Poppins-ExtraBold", "sans-serif"],
        pblack: ["Poppins-Black", "sans-serif"],
      },
    },
  },
  plugins: [],
};
Font Loaded
const [fontsLoaded, error] = useFonts({
  "Poppins-Black": require("../assets/fonts/Poppins-Black.ttf"),
  "Poppins-Bold": require("../assets/fonts/Poppins-Bold.ttf"),
  "Poppins-ExtraBold": require("../assets/fonts/Poppins-ExtraBold.ttf"),
  "Poppins-ExtraLight": require("../assets/fonts/Poppins-ExtraLight.ttf"),
  "Poppins-Light": require("../assets/fonts/Poppins-Light.ttf"),
  "Poppins-Medium": require("../assets/fonts/Poppins-Medium.ttf"),
  "Poppins-Regular": require("../assets/fonts/Poppins-Regular.ttf"),
  "Poppins-SemiBold": require("../assets/fonts/Poppins-SemiBold.ttf"),
  "Poppins-Thin": require("../assets/fonts/Poppins-Thin.ttf"),
});

useEffect(() => {
  if (error) throw error;

  if (fontsLoaded) {
    SplashScreen.hideAsync();
  }
}, [fontsLoaded, error]);

if (!fontsLoaded && !error) {
  return null;
}

About

Aora is a comprehensive React Native Expo app for video streaming and sharing. It features seamless video playback, robust authentication, dynamic home screens with animations, full-text search, and user-friendly interfaces. Users can upload, favorite, and search for videos, while enjoying smooth navigation and responsive design across devices.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published