An open API service indexing awesome lists of open source software.

https://github.com/deepaksilaych/hushh_todo


https://github.com/deepaksilaych/hushh_todo

Last synced: over 1 year ago
JSON representation

Awesome Lists containing this project

README

          

# Simple Notes App

![TO DO APP](assets/images/ss3.png)

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.