Skip to content

Latest commit

Β 

History

33 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NotesApp πŸ“

A feature-rich mobile notes application built with React Native and Expo. Create, organize, and manage your notes with ease using categories, search functionality, and a clean, intuitive interface.

Features ✨

  • User Authentication - Secure signup and login system
  • Create Notes - Add notes with titles, content, and categories
  • Organize by Category - Categorize notes (Personal, Work, Ideas, Important)
  • Search Notes - Find notes quickly with the search functionality
  • Edit Notes - Update existing notes anytime
  • Delete Notes - Remove notes you no longer need
  • User Profile - View and manage your profile information
  • Persistent Storage - All data is securely stored locally using AsyncStorage
  • Responsive Design - Beautiful UI that works on all mobile devices

Tech Stack πŸ› οΈ

  • React Native - Cross-platform mobile framework
  • Expo - Development platform and runtime
  • React Navigation - Navigation library for React Native
  • AsyncStorage - Local data persistence
  • Ionicons - Beautiful icon library

Project Structure πŸ“

react-native-notes-app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ Auth/
β”‚   β”‚   β”‚   β”œβ”€β”€ LoginScreen.js
β”‚   β”‚   β”‚   β”œβ”€β”€ SignupScreen.js
β”‚   β”‚   β”‚   └── RegisterScreen.js
β”‚   β”‚   β”œβ”€β”€ Notes/
β”‚   β”‚   β”‚   β”œβ”€β”€ NotesListScreen.js
β”‚   β”‚   β”‚   β”œβ”€β”€ AddNoteScreen.js
β”‚   β”‚   β”‚   β”œβ”€β”€ EditNoteScreen.js
β”‚   β”‚   β”‚   └── NoteDetailScreen.js
β”‚   β”‚   └── Profile/
β”‚   β”‚       └── ProfileScreen.js
β”‚   β”œβ”€β”€ navigation/
β”‚   β”‚   β”œβ”€β”€ RootNavigator.js
β”‚   β”‚   β”œβ”€β”€ AuthNavigator.js
β”‚   β”‚   └── AppNavigator.js
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Button.js
β”‚   β”‚   β”œβ”€β”€ CategoryTabs.js
β”‚   β”‚   β”œβ”€β”€ NoteCard.js
β”‚   β”‚   └── SearchBar.js
β”‚   β”œβ”€β”€ utils/
β”‚   β”‚   β”œβ”€β”€ storage.js
β”‚   β”‚   └── validation.js
β”‚   β”œβ”€β”€ constants/
β”‚   β”‚   β”œβ”€β”€ categories.js
β”‚   β”‚   └── colors.js
β”‚   └── context/
β”‚       └── AuthContext.js
β”œβ”€β”€ assets/
β”œβ”€β”€ App.js
β”œβ”€β”€ app.json
└── package.json

Getting Started πŸš€

Prerequisites

  • Node.js (v14 or higher)
  • npm or yarn
  • Expo CLI (optional but recommended)

Installation

  1. Clone the repository

    git clone <repository-url>
    cd react-native-notes-app
  2. Install dependencies

    npm install
  3. Start the development server

    npx expo start
  4. Run on a device or simulator

    • Press i for iOS simulator
    • Press a for Android emulator
    • Press w for web browser
    • Or scan the QR code with Expo Go app on your mobile device

Usage πŸ“±

Creating an Account

  1. Launch the app
  2. Tap "Signup" on the login screen
  3. Enter your name, email, and password
  4. Tap "Create Account"

Creating a Note

  1. Log in to your account
  2. Navigate to the Notes tab
  3. Tap the "+" button
  4. Enter note title (optional) and content
  5. Select a category
  6. Tap "Save Note"

Managing Notes

  • View Note: Tap any note in the list to see full details
  • Edit Note: Open a note and tap edit to modify it
  • Delete Note: Tap the trash icon on a note card
  • Search Notes: Use the search bar at the top (if available)

Managing Your Profile

  1. Tap the Profile tab
  2. View your account information
  3. Tap "Logout" to sign out

Key Features Explained 🎯

Authentication

  • Secure user registration with email validation
  • Password-protected login
  • Automatic session management

Notes Management

  • Store unlimited notes locally
  • Each note includes:
    • Title (optional)
    • Content (required)
    • Category
    • Creation and update timestamps

Categories

Available note categories:

  • Personal
  • Work
  • Ideas
  • Important

Data Persistence

  • All user data stored locally using AsyncStorage
  • No cloud dependency - your data stays on your device
  • Automatic data synchronization

Troubleshooting πŸ”§

Issue: "User not found" when creating notes

  • Solution: Make sure you're logged in. Try logging out and logging back in.

Issue: Asset not found errors

  • Solution: Clear Expo cache and restart with npx expo start --clear

Issue: Notes not appearing

  • Solution:
    1. Check that you're logged in
    2. Ensure you created notes while logged in
    3. Pull down to refresh the notes list

Issue: App crashes on startup

  • Solution:
    1. Clear AsyncStorage by uninstalling and reinstalling the app
    2. Check console for specific error messages

Development πŸ‘¨β€πŸ’»

Running Tests

npm test

Building for Production

Android:

eas build --platform android

iOS:

eas build --platform ios

Code Style

The project follows React Native best practices and uses consistent formatting.

Security Notes πŸ”’

  • Passwords are stored locally - never share your credentials
  • Data is stored unencrypted on device - ensure physical device security
  • For production, consider implementing encryption for sensitive data

Future Enhancements πŸš€

  • Cloud synchronization
  • Note sharing between users
  • Rich text formatting
  • Image attachments
  • Voice notes
  • Reminders and notifications
  • Dark mode support
  • Export notes as PDF

Contributing 🀝

Contributions are welcome! Please feel free to submit pull requests or report issues.

License πŸ“„

This project is open source and available under the MIT License.

Support πŸ’¬

For issues, questions, or suggestions, please open an issue on the project repository.

Changelog πŸ“‹

Version 1.0.0

  • Initial release
  • User authentication
  • Note creation, editing, and deletion
  • Category organization
  • User profile management

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages