{"id":33510062,"url":"https://github.com/irfan140/note-app","last_synced_at":"2025-11-26T04:03:34.789Z","repository":{"id":322442423,"uuid":"1088023247","full_name":"Irfan140/Note-App","owner":"Irfan140","description":"A full-stack note-taking application built with React Native (Expo), Node.js/Express, and PostgreSQL. ","archived":false,"fork":false,"pushed_at":"2025-11-22T11:49:38.000Z","size":1370,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-22T12:21:19.035Z","etag":null,"topics":["bun","clerk-auth","expo","express","prisma"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Irfan140.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-02T06:13:46.000Z","updated_at":"2025-11-22T10:55:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Irfan140/Note-App","commit_stats":null,"previous_names":["irfan140/note-app"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Irfan140/Note-App","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Irfan140%2FNote-App","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Irfan140%2FNote-App/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Irfan140%2FNote-App/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Irfan140%2FNote-App/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Irfan140","download_url":"https://codeload.github.com/Irfan140/Note-App/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Irfan140%2FNote-App/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286079811,"owners_count":27282121,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-26T02:00:06.075Z","response_time":193,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bun","clerk-auth","expo","express","prisma"],"created_at":"2025-11-26T04:03:23.682Z","updated_at":"2025-11-26T04:03:34.780Z","avatar_url":"https://github.com/Irfan140.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"A full-stack note-taking application built with React Native (Expo), Node.js/Express, and PostgreSQL. Features user authentication via Clerk and a clean, modern interface for creating, editing, and managing notes.\n\n##  Features\n\n- **User Authentication**: Secure authentication powered by Clerk\n- **Create \u0026 Edit Notes**: Intuitive interface for note management\n- **Real-time Sync**: Notes are synced with a PostgreSQL database\n- **Cross-Platform**: Mobile app runs on iOS, Android, and Web\n- **Type-Safe**: Full TypeScript implementation across frontend and backend\n- **Modern Stack**: Built with latest technologies and best practices\n\n## 📋 Tech Stack\n\n### Backend\n- **Runtime**: Bun\n- **Framework**: Express.js\n- **Database**: PostgreSQL with Prisma ORM\n- **Authentication**: Clerk Express SDK\n\n### Mobile (Frontend)\n- **Framework**: React Native with Expo\n- **Navigation**: Expo Router\n- **Authentication**: Clerk Expo SDK\n- **HTTP Client**: Axios\n\n## 📁 Project Structure\n\n```\nNote-App/\n├── backend/                 # Backend API server\n│   ├── src/\n│   │   ├── controllers/    # Route controllers\n│   │   ├── services/       # Business logic\n│   │   ├── routes/         # API routes\n│   │   ├── middlewares/    # Custom middlewares\n│   │   ├── config/         # Configuration files\n│   │   └── types/          # TypeScript type definitions\n│   ├── prisma/\n│   │   └── schema.prisma   # Database schema\n│   └── package.json\n│\n└── mobile/                  # React Native mobile app\n    ├── src/\n    │   ├── app/            # Expo Router pages\n    │   │   ├── (auth)/     # Authentication screens\n    │   │   ├── (home)/     # Home screens\n    │   │   └── note/       # Note-related screens\n    │   ├── components/     # Reusable components\n    │   ├── lib/            # Utilities and API client\n    │   └── types/          # TypeScript type definitions\n    └── package.json\n```\n\n\n## 📷 Screenshots\n\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"mobile/assets/readme-assets/1763568124737.jpg\" alt=\"Home\" width=\"240\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"mobile/assets/readme-assets/1763568124746.jpg\" alt=\"Notes List\" width=\"240\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"mobile/assets/readme-assets/1763568124756.jpg\" alt=\"Create Note\" width=\"240\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003e\u003cimg src=\"mobile/assets/readme-assets/1763568124766.jpg\" alt=\"Edit Note\" width=\"240\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"mobile/assets/readme-assets/1763568124778.jpg\" alt=\"Profile\" width=\"240\"/\u003e\u003c/td\u003e\n    \u003ctd\u003e\u003cimg src=\"mobile/assets/readme-assets/1763568124789.jpg\" alt=\"Settings\" width=\"240\"/\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\n## 📦 Installation\n\n### 1. Clone the Repository\n\n```bash\ngit clone https://github.com/Irfan140/Note-App.git\ncd Note-App\n```\n\n### 2. Backend Setup\n\n```bash\ncd backend\n\n# Install dependencies\nbun install\n\n# Run database migrations\nbun run db:migrate\n\n# Start the development server\nbun run dev\n```\n\nThe backend server will start on `http://localhost:3000`\n\n### 3. Mobile App Setup\n\n```bash\ncd mobile\n\n# Install dependencies\nnpm install\n\n# Start the Expo development server\nnpm start\n```\n\n## 🚀 Running the Application\n\n### Backend\n```bash\ncd backend\nbun run dev\n```\n\n### Mobile App\n```bash\ncd mobile\nnpm start\n\n# Then choose your platform:\n# Press 'a' for Android\n# Press 'i' for iOS\n# Press 'w' for Web\n```\n\n## 🗄️ Database Schema\n\nThe application uses two main models:\n\n### User\n- `id` (String): Clerk user ID\n- `email` (String): User's email address\n- `name` (String?): Optional user name\n- `imageUrl` (String?): Optional profile image\n- `notes` (Note[]): User's notes\n- `createdAt` (DateTime): Account creation timestamp\n\n### Note\n- `id` (String): Unique note identifier (CUID)\n- `title` (String): Note title\n- `content` (String?): Optional note content\n- `userId` (String): Foreign key to User\n- `createdAt` (DateTime): Note creation timestamp\n\n## 🔐 Environment Variables\n\n### Backend (.env)\n```env\nDATABASE_URL=\"postgresql://user:password@localhost:5432/noteapp\"\nCLERK_PUBLISHABLE_KEY=\"pk_test_...\"\nCLERK_SECRET_KEY=\"sk_test_...\"\nPORT=3000\n```\n\n### Mobile (.env)\n```env\nEXPO_PUBLIC_CLERK_PUBLISHABLE_KEY=\"pk_test_...\"\nEXPO_PUBLIC_API_URL=\"http://localhost:3000\"\n```\n\n## 📱 Available Scripts\n\n### Backend\n- `bun run dev` - Start development server with hot reload\n- `bun run db:migrate` - Run database migrations\n\n### Mobile\n- `npm start` - Start Expo development server\n- `npm run android` - Run on Android device/emulator\n- `npm run ios` - Run on iOS device/simulator\n- `npm run web` - Run in web browser\n- `npm run lint` - Run ESLint\n\n## 🏗️ API Endpoints\n\n### Notes API\n- `GET /notes` - Get all notes for authenticated user\n- `GET /notes/:id` - Get a specific note\n- `POST /notes` - Create a new note\n- `PUT /notes/:id` - Update a note\n- `DELETE /notes/:id` - Delete a note\n\nAll endpoints require Clerk authentication.\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n1. Fork the project\n2. Create your feature branch (`git checkout -b feature/AmazingFeature`)\n3. Commit your changes (`git commit -m 'Add some AmazingFeature'`)\n4. Push to the branch (`git push origin feature/AmazingFeature`)\n5. Open a Pull Request\n\n##  Future Plans\n\n### Deployment\n- **Backend Deployment**: Deploy the Express.js backend to a cloud platform (e.g., Railway, Render, or AWS)\n- **Mobile App Distribution**: \n  - Publish the app to Google Play Store\n  - Create APK builds for testing and distribution\n  - iOS App Store submission (future consideration)\n\n### AI-Powered Features\n- **Smart Note Summaries**: Develop a separate Flask microservice that leverages Large Language Models (LLMs) to:\n  - Generate intelligent summaries of user notes\n  - Provide contextual insights and key point extraction\n  - Display AI-generated summaries in the mobile app\n  - Integrate with the main backend via REST API\n\n### UI/UX Improvements\n- Enhanced note editor with rich text formatting\n- Dark mode support\n- Improved navigation and user experience\n- Better visual design and animations\n- Search and filter functionality for notes\n- Tags and categories for better organization\n\n### Security Enhancements\n- Implement rate limiting on API endpoints\n- Add data encryption for sensitive note content\n- Enhanced input validation and sanitization\n- Implement proper CORS policies\n- Add logging and monitoring for security events\n- Regular security audits and dependency updates\n- End-to-end encryption for notes (optional)\n\n## 👤 Author\n\n**Irfan Mehmud**\n- GitHub: [@Irfan140](https://github.com/Irfan140)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firfan140%2Fnote-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firfan140%2Fnote-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firfan140%2Fnote-app/lists"}