Skip to content

SnapCam is a modern React Native camera application built with Expo, featuring photo and video capture, media library browsing, QR code scanning, and a beautiful themed UI. This project is designed for learning and experimentation, and was created using online references and community resources.

Notifications You must be signed in to change notification settings

SulthanNK/SnapCam

Repository files navigation

SnapCam 📸

Expo React Native MIT License

SnapCam is a modern React Native camera application built with Expo, featuring photo and video capture, media library browsing, QR code scanning, and a beautiful themed UI. This project is designed for learning and experimentation, and was created using online references and community resources.

Features

  • 📷 Camera: Take photos and record videos using the device camera.
  • 🎥 Video Player: Playback recorded videos with native controls.
  • 🖼 Media Library: Browse your device's photo library.
  • 🔦 Camera Tools: Toggle flash, torch, camera facing, and zoom.
  • 🧑‍💻 Themed UI: Automatic light/dark mode support.
  • 🧩 Reusable Components: Modular design with custom hooks and UI components.
  • 📄 File-based Routing: Powered by expo-router.
  • 🧪 Unit Tests: Includes tests for key components using Jest and React Native Testing Library.
  • 🛠 CI/CD: GitHub Actions workflow for automated builds and Telegram notifications.

Screenshots

SnapCam Intro SnapCam Camera SnapCam Media Library

Getting Started

Prerequisites

  • Node.js (v20 or newer recommended)
  • Expo CLI
  • Android Studio or Xcode for device emulation (optional)

Installation

  1. Clone the repository:

    git clone https://github.com/your-username/snapcam.git
    cd snapcam
  2. Install dependencies:

    npm install
  3. Start the development server:

    npx expo start

    Follow the on-screen instructions to open the app in an emulator or on your device.

Project Structure

  • app/ - Main application source code (screens, navigation)
  • components/ - Reusable UI components
  • constants/ - App-wide constants (colors, etc.)
  • hooks/ - Custom React hooks
  • assets/ - Images and fonts
  • scripts/ - Utility scripts (e.g., project reset)
  • android/ - Android native project files

Scripts

  • npm start - Start the Expo development server
  • npm run android - Run on Android device/emulator
  • npm run ios - Run on iOS simulator (macOS only)
  • npm run web - Run in web browser
  • npm run test - Run unit tests
  • npm run reset-project - Reset to a blank project (see below)

Resetting the Project

To reset the project to a blank state (for starting fresh):

npm run reset-project

This will move your current source files to app-example/ and create a new blank app/ directory.

Acknowledgements

This project was created by referencing various online resources, tutorials, and open-source projects in the React Native and Expo communities.

License

This project is for educational and demonstration purposes. Please review and update the license as appropriate for your use case.


Created by sulthan with ❤️ using Expo and inspiration from Code With Beto & open-source community.

About

SnapCam is a modern React Native camera application built with Expo, featuring photo and video capture, media library browsing, QR code scanning, and a beautiful themed UI. This project is designed for learning and experimentation, and was created using online references and community resources.

Topics

Resources

Stars

Watchers

Forks