Skip to content

Latest commit

History

67 Commits

Folders and files

NameName
Last commit message
Last commit date

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=5000MONGO_URI=your_mongodb_connection_stringJWT_SECRET=your_secret_keyJWT_EXPIRES_IN=7dSMTP_HOST=your_smtp_hostSMTP_USER=your_smtp_userDEV_EMAIL=your_dev_emailSMTP_PASS=your_smtp_passwordSMTP_PORT=587SMTP_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

MethodEndpointDescription
POST/auth/signupRegister a new user
POST/auth/loginLogin user and return JWT token

Notes

MethodEndpointDescription
POST/notes/createCreate a new note
GET/notes/getGet all notes for user
PATCH/notes/updateUpdate a note by ID
DELETE/notes/deleteDelete a note by ID

Todos

MethodEndpointDescription
POST/todo/createCreate a new todo
GET/todo/getGet all todos for user
PATCH/todo/updateUpdate a todo by ID
DELETE/todo/deleteDelete a todo by ID

🔑 Environment Variables

Backend (.env)

PORT=5000MONGO_URI=your_mongodb_connection_stringJWT_SECRET=your_secret_keyJWT_EXPIRES_IN=7dSMTP_HOST=your_smtp_hostSMTP_USER=your_smtp_userDEV_EMAIL=your_dev_emailSMTP_PASS=your_smtp_passwordSMTP_PORT=587SMTP_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

Stars

0 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages