https://github.com/deepaksilaych/hushh_todo
https://github.com/deepaksilaych/hushh_todo
Last synced: over 1 year ago
JSON representation
- Host: GitHub
- URL: https://github.com/deepaksilaych/hushh_todo
- Owner: DeepakSilaych
- Created: 2025-04-18T04:52:43.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-21T15:17:02.000Z (over 1 year ago)
- Last Synced: 2025-04-21T16:28:24.599Z (over 1 year ago)
- Language: TypeScript
- Size: 441 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Simple Notes App

A lightweight mobile application for creating, viewing, editing, and deleting notes, built with React Native and Expo.
## Features
- Create notes with a title and body content
- View all notes in a clean, organized list
- View detailed content of individual notes
- Seamless in-place editing with floating action button
- Delete notes
- Local storage persistence using AsyncStorage
## Getting Started
### Prerequisites
- Node.js (v14 or newer)
- pnpm (or npm/yarn)
- Expo CLI
- iOS Simulator (for macOS) or Android Emulator
### Installation
1. Clone the repository:
```
git clone
cd todo
```
2. Install dependencies:
```
pnpm install
```
3. Start the development server:
```
pnpm start
```
4. Open the app on your preferred platform:
- Press `i` for iOS simulator
- Press `a` for Android emulator
- Press `w` for web
- Scan the QR code with Expo Go on your physical device
## Project Structure
- `app/` - Contains the application screens and navigation
- `components/` - Reusable UI components
- `hooks/` - Custom React hooks, including `useNotes` for data management
- `types/` - TypeScript type definitions
## Tech Stack
- **React Native**: Cross-platform mobile framework
- **Expo**: Development platform for React Native
- **AsyncStorage**: Persistent storage solution
- **TypeScript**: Type-safe JavaScript
- **expo-router**: File-based routing for Expo apps
## Architecture
The app uses a simple architecture with the following components:
1. **Components**: Reusable UI elements like `NoteItem` for rendering note previews
2. **Hooks**: `useNotes` manages the state and persistence of notes
3. **Screens**:
- Home screen (index.tsx): Displays all notes
- Create screen (create.tsx): Form for creating new notes
- Note details screen (note/[id].tsx): Displays the full content of a note with edit and delete options, including a floating action button for seamless in-place editing
Data flow is managed through the `useNotes` hook, which handles all CRUD operations and AsyncStorage persistence.