Skip to content

NoteVault - Your personal note-taking companion. Create notes, manage todos, and stay organized with a beautiful UI, dark mode support, and cloud sync.

License

Notifications You must be signed in to change notification settings

MoinMN/NoteVault

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

66 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NoteVault

NoteVault is a cross-platform mobile application built with React Native (Expo) and Node.js (TypeScript). It helps users store notes and manage to-do lists efficiently with end-to-end encryption. The app provides a smooth, intuitive interface for note-taking and task management, synced with a backend API.


🌐 Web App

Visit our promotional website and explore NoteVault online:

🌐 NoteVault Web App


πŸ“± Download the App

Google Play Store

Download NoteVault from the Google Play Store:

πŸ“² Get it on Google Play

Android APK

Download the latest Android build directly:

πŸ“₯ Download NoteVault.apk

Or scan this QR code to download:

Download APK QR Code

Expo Build

View the build on Expo:

πŸ”— Expo Build Link


πŸ“‹ Table of Contents


✨ Features

  • πŸ” User authentication (signup/login)
  • πŸ”’ End-to-end encryption for notes and todos
  • πŸ“ Create, update, delete notes
  • βœ… Add, update, delete to-do items
  • βœ”οΈ Mark to-dos as completed
  • πŸ—‚οΈ Sort and organize notes and tasks
  • πŸŒ“ Light & Dark mode support
  • πŸ“± Responsive UI for different screen sizes
  • πŸ”„ Real-time sync with backend API
  • πŸ” Search functionality for notes
  • πŸ“Œ Pin important notes
  • πŸ“Š Multi-color avatars for users
  • πŸ“’ In-app ads to support ongoing development

πŸ“ Project Structure

NoteVault/
β”‚
β”œβ”€β”€ backend/                    # Node.js backend
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ controllers/        # Request handlers
β”‚   β”‚   β”œβ”€β”€ models/             # Database models
β”‚   β”‚   β”œβ”€β”€ routes/             # API routes
β”‚   β”‚   β”œβ”€β”€ middleware/         # Auth & validation middleware
β”‚   β”‚   β”œβ”€β”€ utils/              # Helper functions
β”‚   β”‚   └── app.ts              # Express app setup
β”‚   β”œβ”€β”€ public/
β”‚   β”‚   └── apk/
β”‚   β”‚       └── NoteVault.apk   # Latest Android build
β”‚   β”œβ”€β”€ package.json
β”‚   β”œβ”€β”€ tsconfig.json
β”‚   └── .env.example
β”‚
β”œβ”€β”€ react-native-app/           # React Native (Expo) frontend
β”‚   β”œβ”€β”€ app/                    # App screens & navigation
β”‚   β”œβ”€β”€ components/             # Reusable UI components
β”‚   β”œβ”€β”€ context/                # React Context for state
β”‚   β”œβ”€β”€ api/                    # API service functions
β”‚   β”œβ”€β”€ lib/                    # Library files (api.tsx)
β”‚   β”œβ”€β”€ assets/                 # Images, fonts, etc.
β”‚   β”œβ”€β”€ package.json
β”‚   └── tsconfig.json
β”‚
└── LICENSE                     # License file

πŸ› οΈ Technologies Used

Frontend (React Native)

  • React Native with Expo
  • TypeScript
  • React Navigation (for routing)
  • React Context API (state management)
  • Redux Toolkit (advanced state management)
  • Axios (HTTP client)
  • NativeWind / Tailwind CSS (styling)
  • React Native Paper (Material Design components)
  • Expo Vector Icons

Backend (Node.js)

  • Node.js with Express
  • TypeScript
  • MongoDB with Mongoose (database)
  • JWT (authentication)
  • bcrypt (password hashing)
  • dotenv (environment configuration)
  • express-validator (input validation)
  • Nodemailer (email functionality)

πŸ“¦ Installation

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • MongoDB (local or cloud instance)
  • Expo CLI (npm install -g expo-cli)

Backend Setup

  1. Navigate to the backend folder:

    cd backend
  2. Install dependencies:

    npm install
  3. Create a .env file in the backend directory:

    PORT=5000
    MONGO_URI=your_mongodb_connection_string
    JWT_SECRET=your_secret_key
    JWT_EXPIRES_IN=7d
    SMTP_HOST=your_smtp_host
    SMTP_USER=your_smtp_user
    DEV_EMAIL=your_dev_email
    SMTP_PASS=your_smtp_password
    SMTP_PORT=587
    SMTP_SECURE=false
  4. Start the backend server:

    npm run dev

    The server should now be running on http://localhost:5000

React Native App Setup

  1. Navigate to the React Native app folder:

    cd react-native-app
  2. Install dependencies:

    npm install
  3. Update the lib/api.tsx file in the react-native-app directory with your backend URL:

    baseURL: "http://localhost:5000";
  4. Start the Expo development server:

    npm start
  5. Use the Expo Go app on your mobile device to scan the QR code, or run on an emulator:

    • iOS Simulator: Press i
    • Android Emulator: Press a

πŸš€ Running the App

Option 1: Download Pre-built APK (Android Only)

  1. Download the APK from the link above
  2. Install it on your Android device
  3. Open NoteVault and start using!

Option 2: Run from Source

  1. Start the Backend Server:

    cd backend
    npm run dev
  2. Start the React Native App:

    cd react-native-app
    npm start
  3. Open the app:

    • Scan the QR code with Expo Go on your mobile device
    • Or run on an iOS Simulator or Android Emulator
  4. You can now create notes and manage to-do lists in real-time! πŸŽ‰


🌐 API Endpoints

Authentication

Method Endpoint Description
POST /auth/signup Register a new user
POST /auth/login Login user and return JWT token

Notes

Method Endpoint Description
POST /notes/create Create a new note
GET /notes/get Get all notes for user
PATCH /notes/update Update a note by ID
DELETE /notes/delete Delete a note by ID

Todos

Method Endpoint Description
POST /todo/create Create a new todo
GET /todo/get Get all todos for user
PATCH /todo/update Update a todo by ID
DELETE /todo/delete Delete a todo by ID

πŸ”‘ Environment Variables

Backend (.env)

PORT=5000
MONGO_URI=your_mongodb_connection_string
JWT_SECRET=your_secret_key
JWT_EXPIRES_IN=7d
SMTP_HOST=your_smtp_host
SMTP_USER=your_smtp_user
DEV_EMAIL=your_dev_email
SMTP_PASS=your_smtp_password
SMTP_PORT=587
SMTP_SECURE=false

Note: For production, update lib/api.tsx to your deployed backend URL.


πŸ“œ Scripts

Backend Scripts

npm run dev      # Start development server with nodemon
npm run build    # Compile TypeScript to JavaScript
npm start        # Run compiled JavaScript (production)
npm run lint     # Run ESLint

React Native App Scripts

npm start        # Start Expo development server
npm run android  # Run on Android emulator/device
npm run ios      # Run on iOS simulator
npm run web      # Run on web browser

🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a new branch:
    git checkout -b feature/YourFeature
  3. Make your changes
  4. Commit your changes:
    git commit -m 'Add some feature'
  5. Push to the branch:
    git push origin feature/YourFeature
  6. Open a Pull Request

πŸ“„ License

This project is licensed under the PixelMint Limited Use License (2026).

You may use this software for personal and non-commercial purposes only.
Any commercial use, resale, or monetization is strictly prohibited.

See the LICENSE file for full terms.


πŸ”— Important Links


πŸ” Security & Privacy

NoteVault is built with security and privacy as top priorities:

  • End-to-end encryption - All notes and todos are encrypted before being stored
  • Secure storage - Your data is protected with industry-standard encryption
  • Privacy-focused - We don't collect or share your personal data
  • Ad-supported - In-app ads help us maintain and improve the app while keeping your data private

πŸ“§ Contact

For questions or feedback, feel free to reach out:


πŸ™ Acknowledgments

  • Built with ❀️ by PixelMint
  • Powered by React Native and Expo
  • Backend by Node.js and MongoDB

NoteVault – Keep your notes and to-dos organized and secure, always. πŸ”’βœ¨

About

NoteVault - Your personal note-taking companion. Create notes, manage todos, and stay organized with a beautiful UI, dark mode support, and cloud sync.

Topics

Resources

License

Stars

Watchers

Forks

Languages