{"id":28471230,"url":"https://github.com/requestnetwork/easy-invoice","last_synced_at":"2026-01-16T14:49:43.877Z","repository":{"id":276783213,"uuid":"928896962","full_name":"RequestNetwork/easy-invoice","owner":"RequestNetwork","description":"An app for creating and paying requests using the Request Network API.","archived":false,"fork":false,"pushed_at":"2026-01-13T10:23:08.000Z","size":1275,"stargazers_count":5,"open_issues_count":38,"forks_count":7,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-13T11:51:07.195Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://easyinvoice.request.network","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RequestNetwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-02-07T12:43:56.000Z","updated_at":"2026-01-09T09:57:46.000Z","dependencies_parsed_at":"2025-12-19T04:07:43.622Z","dependency_job_id":null,"html_url":"https://github.com/RequestNetwork/easy-invoice","commit_stats":null,"previous_names":["requestnetwork/easy-invoice"],"tags_count":21,"template":false,"template_full_name":null,"purl":"pkg:github/RequestNetwork/easy-invoice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RequestNetwork%2Feasy-invoice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RequestNetwork%2Feasy-invoice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RequestNetwork%2Feasy-invoice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RequestNetwork%2Feasy-invoice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RequestNetwork","download_url":"https://codeload.github.com/RequestNetwork/easy-invoice/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RequestNetwork%2Feasy-invoice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28479402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T11:59:17.896Z","status":"ssl_error","status_checked_at":"2026-01-16T11:55:55.838Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-06-07T10:39:55.076Z","updated_at":"2026-01-16T14:49:43.864Z","avatar_url":"https://github.com/RequestNetwork.png","language":"TypeScript","readme":"# Easy Invoice - Streamlined Invoice Management with Request Network\n\nEasy Invoice is a modern, user-friendly web application that demonstrates the power and simplicity of creating and managing invoices using the Request Network API. Built with Next.js and modern web technologies, this application showcases how easy it is to implement crypto-powered payment solutions in your applications.\n\n## ✨ Features\n\n- 🧾 **Simple Invoice Creation**: Create professional invoices in minutes\n- 💰 **Crypto Payments**: Accept payments in various cryptocurrencies\n- 🔄 **Real-time Updates**: Track payment status in real-time\n- 🌐 **Web3 Integration**: Seamless integration with blockchain technology\n\n## 🚀 Getting Started\n\n### Prerequisites\n\n- Node.js 18+\n\n  - It is recommended to use `nvm` (Node Version Manager) to install and manage your Node.js versions. You can install `nvm` from [here](https://github.com/nvm-sh/nvm) and then run the following commands:\n\n  ```bash\n  $ nvm install 18\n  $ nvm use 18\n  ```\n\n- PostgreSQL database\n- Google OAuth credentials (for authentication)\n- Request Network API key\n- Reown Project ID\n\n### Environment Setup\n\n1. Clone the repository:\n\n```bash\ngit clone git@github.com:RequestNetwork/easy-invoice.git\ncd easy-invoice\n```\n\n2. Copy the environment variables file:\n\n```bash\ncp .env.example .env\n```\n\n3. You need to manually create an API key on the Request API, either via our Open API reference or the API portal.\n\n4. After your API key is created, register your easy invoice webhook URL at Request API, either via our Open API reference or the API portal. The default Easy Invoice webhook URL when running locally is `http://localhost:3000/api/webhook`.\n\n5. Fill in the required environment variables in `.env`:\n\n- `DATABASE_URL`: Your PostgreSQL connection string\n- `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET`: Google OAuth credentials\n- `GOOGLE_REDIRECT_URI`: your google login redirect url, when running locally it should be `http://localhost:3000/login/google/callback`\n- `REQUEST_API_KEY`: The key created in step 3 (starts with `rn_...`)\n- `WEBHOOK_SECRET`: The webhook secret from step 4\n- `REQUEST_API_URL`: Request Network API URL\n- `NEXT_PUBLIC_REOWN_PROJECT_ID`: Your Reown project ID\n- Other required environment variables as specified in `.env.example`\n\n### Installation\n\n#### 1. Install Dependencies\n\n```bash\nnpm install\n# or\nyarn install\n```\n\n#### 2. Start the Development Server\n\nThis command runs the Easy Invoice Next.js app (frontend and backend) and starts the PostgreSQL database container.\n\n```bash\nnpm run dev\n# or\nyarn dev\n```\n\n\u003e [!Note]\n\u003e If the PostgreSQL database container does not exist, it will be created automatically when you start the development server.\n\nThe application will be available at [http://localhost:3000](http://localhost:3000).\n\n#### 3. Set Up the Database\n\n\u003e [!Note]\n\u003e Ensure the database container is running before interacting with the database. The container starts automatically when you run `npm run dev` or `yarn dev`.\n\n```bash\n# For development:\nnpm run db:push    # Pushes schema changes directly to the database\n# or\nyarn db:push\n\n# For production:\nnpm run db:generate  # Generates migration files based on schema changes\nnpm run db:migrate   # Applies the generated migrations to the database\n# or\nyarn db:generate\nyarn db:migrate\n```\n\n### Development\n\n#### Access the Database with Drizzle Studio\n\nYou can use Drizzle Studio to inspect and manage your PostgreSQL database:\n\n```bash\nnpm run db:studio\n# or\nyarn db:studio\n```\n\nDrizzle Studio runs on port `4983` by default. If you see an error like `Error: listen EADDRINUSE: address already in use 127.0.0.1:4983`, it means the port is already in use (possibly by another Drizzle Studio instance). You can specify a different port:\n\n```bash\nnpm run db:studio -- --port=4984\n# or\nyarn db:studio --port=4984\n```\n\n#### Resetting the Database for Development\n\nThe PostgreSQL database container stores its data in the `./dev/postgres-data` directory (mounted as a volume).\n\nTo fully reset the database:\n\n1. **Delete the PostgreSQL container.**\n2. **Delete the `./dev/postgres-data` directory.**\n\nThis will remove all persisted data and ensure a fresh database instance is created on the next startup.\n\n## 🏗️ Tech Stack\n\n- **Framework**: Next.js 14 with App Router\n- **Authentication**: Google OAuth\n- **Database**: PostgreSQL with Drizzle ORM\n- **Styling**: Tailwind CSS\n- **State Management**: React Query \u0026 tRPC\n- **Payment Integration**: Request Network API\n- **Web3**: Ethers.js \u0026 Viem\n\n## 📖 Documentation\n\nFor more information about the technologies used:\n\n- [Request Network Documentation](https://docs.request.network/)\n- [Next.js Documentation](https://nextjs.org/docs)\n- [tRPC Documentation](https://trpc.io/)\n- [Drizzle ORM Documentation](https://orm.drizzle.team/)\n\n## 🤝 Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📝 License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frequestnetwork%2Feasy-invoice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frequestnetwork%2Feasy-invoice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frequestnetwork%2Feasy-invoice/lists"}