Skip to content

Repository files navigation

Notez Icon

Notez

A sleek, privacy-focused, feature-rich Markdown & Rich Text note-taking app for Android & iOS.

React Native Expo TypeScript SQLite Firebase License


🌟 Overview

Notez combines local-first privacy with seamless cloud synchronization. Built with React Native, Expo, and SQLite, Notez ensures your notes remain instantly available offline while offering encrypted cloud backup with Firebase, biometric security lock, Markdown rendering, rich text editing via Quill, custom ambient themes, and full revision history.


✨ Key Features

  • ✍️ Rich Text & Markdown Editor: WYSIWYG rich text editor powered by Quill with full Markdown preview, live formatting toolbar, code highlight, and inline media.
  • πŸ”’ AES-256 Vault & Biometric Lock: Keep sensitive notes protected with PIN / Biometric authentication (Fingerprint / Face ID) and client-side encryption.
  • ⚑ Local-First SQLite Database: Lightning-fast offline performance with local SQLite database storage for instant load times.
  • ☁️ Firebase Cloud Sync: Optional multi-device automatic synchronization powered by Firebase Authentication & Firestore.
  • 🏷️ Labels & Categorization: Color-coded custom labels, note pinning, favoriting, and smart filtering.
  • 🎨 Ambient Dark & Glassmorphism Themes: Modern UI with procedural mesh gradients, glassmorphism cards, and customizable color schemes.
  • πŸ“œ Version History & Recycle Bin: Full version history tracking for every note edit and a safe recycle bin with restore support.
  • πŸ“€ Export & Import: Export notes as Markdown, PDF, Plain Text, or compressed ZIP backup bundles.

πŸ› οΈ Tech Stack & Architecture

Notez Architecture
β”œβ”€β”€ Frontend: React Native (Expo SDK 54, React 19)
β”œβ”€β”€ Navigation: React Navigation (Native Stack)
β”œβ”€β”€ Local Storage: Expo SQLite & AsyncStorage
β”œβ”€β”€ Security: Expo Local Authentication & Crypto-JS (AES-256)
β”œβ”€β”€ Rich Text: React Native Quill & Custom Markdown View
β”œβ”€β”€ Cloud Infrastructure: Firebase Authentication, Firestore Database, Firebase Storage

πŸ“ Project Structure

Notez/
β”œβ”€β”€ assets/                  # App icons, splash screens, and static images
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/          # Reusable UI components (NoteCard, GlassCard, CustomDialog...)
β”‚   β”œβ”€β”€ config/              # Firebase & app configuration
β”‚   β”œβ”€β”€ constants/           # Color palettes, design tokens, and theme definitions
β”‚   β”œβ”€β”€ context/             # Global Context providers (ThemeContext)
β”‚   β”œβ”€β”€ db/                  # SQLite schema definitions & initialization routines
β”‚   β”œβ”€β”€ hooks/               # Custom React hooks (useDialog)
β”‚   β”œβ”€β”€ navigation/          # App navigation configuration & stack definitions
β”‚   β”œβ”€β”€ screens/             # App screens (HomeScreen, EditorScreen, SettingsScreen...)
β”‚   └── services/            # Business logic (NoteService, SyncService, BackupService...)
β”œβ”€β”€ App.tsx                  # Root application entry point
β”œβ”€β”€ app.json                 # Expo configuration manifest
└── index.ts                 # App startup entry point

πŸš€ Getting Started

Prerequisites

Installation

  1. Clone the repository:

    git clone https://github.com/MZarc/Notez.git
    cd Notez
  2. Install dependencies:

    npm install
  3. Start the Expo development server:

    npm start
  4. Run on Android device/emulator:

    npm run android

πŸ”₯ Firebase & Cloud Sync Setup

  1. Create a Firebase project at the Firebase Console.
  2. Enable Authentication (Google Sign-In method).
  3. Create a Cloud Firestore database.
  4. Copy your Firebase web app configuration into src/config/firebase.ts:
    export const firebaseConfig = {
      apiKey: "YOUR_API_KEY",
      authDomain: "YOUR_PROJECT.firebaseapp.com",
      projectId: "YOUR_PROJECT_ID",
      storageBucket: "YOUR_PROJECT.firebasestorage.app",
      messagingSenderId: "YOUR_SENDER_ID",
      appId: "YOUR_APP_ID"
    };
  5. For Android native Google Sign-In, download google-services.json from your Firebase Android app settings and place it in the project root directory (refer to google-services.json.example).

πŸ“„ License

This project is open-source software licensed under the MIT License.


Made with ❀️ for privacy and seamless note-taking.

About

πŸ“ Notez β€” A sleek, privacy-focused Markdown & Rich Text note-taking app built with React Native, Expo, SQLite local storage, AES-256 encryption, custom ambient themes, and Firebase cloud sync.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages