{"id":27979227,"url":"https://github.com/geniewizards/zenmo","last_synced_at":"2025-05-08T02:21:04.455Z","repository":{"id":262206774,"uuid":"880397927","full_name":"GenieWizards/zenmo","owner":"GenieWizards","description":"Backend repository for finance management system","archived":false,"fork":false,"pushed_at":"2025-03-03T12:59:07.000Z","size":1139,"stargazers_count":2,"open_issues_count":24,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-15T00:51:11.885Z","etag":null,"topics":["bun","docker-compose","drizzle-orm","hono","lucia-auth"],"latest_commit_sha":null,"homepage":"","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/GenieWizards.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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}},"created_at":"2024-10-29T16:45:36.000Z","updated_at":"2025-03-01T12:06:55.000Z","dependencies_parsed_at":"2024-11-30T12:23:17.117Z","dependency_job_id":"21f08cba-f7de-4b83-a5b8-b6ae716d25a6","html_url":"https://github.com/GenieWizards/zenmo","commit_stats":null,"previous_names":["geniewizards/finance-management-api","geniewizards/zenmo"],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieWizards%2Fzenmo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieWizards%2Fzenmo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieWizards%2Fzenmo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GenieWizards%2Fzenmo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GenieWizards","download_url":"https://codeload.github.com/GenieWizards/zenmo/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252984670,"owners_count":21835834,"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","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","docker-compose","drizzle-orm","hono","lucia-auth"],"created_at":"2025-05-08T02:21:03.553Z","updated_at":"2025-05-08T02:21:04.374Z","avatar_url":"https://github.com/GenieWizards.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Finance Management API\n\nA backend repository for the finance management system.\n\n## Table of Contents\n\n- [Finance Management API](#finance-management-api)\n- [Tech Stack](#tech-stack)\n- [To Setup Locally](#to-setup-locally)\n- [Check API Documentation](#check-api-documentation)\n- [Database Migrations](#database-migrations)\n\n## Tech Stack\n\n- **Language:** TypeScript ![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?style=flat\u0026logo=typescript\u0026logoColor=white)\n- **Runtime:** Bun ![Bun](https://img.shields.io/badge/Bun-000000?style=flat\u0026logo=bun\u0026logoColor=white)\n- **Package Manager:** Bun ![Bun](https://img.shields.io/badge/Bun-000000?style=flat\u0026logo=bun\u0026logoColor=white)\n- **Auth:** Lucia Auth ![Lucia Auth](https://img.shields.io/badge/Lucia_Auth-4B8BBE?style=flat\u0026logo=auth0\u0026logoColor=white)\n- **Database:** PostgreSQL ![PostgreSQL](https://img.shields.io/badge/PostgreSQL-316192?style=flat\u0026logo=postgresql\u0026logoColor=white)\n- **ORM/ODM:** Drizzle ![Drizzle](https://img.shields.io/badge/Drizzle-000000?style=flat\u0026logo=drizzle\u0026logoColor=white)\n- **Testing:** Bun ![Bun](https://img.shields.io/badge/Bun-000000?style=flat\u0026logo=bun\u0026logoColor=white)\n- **Documentation:** OpenAPI/Scalar ![OpenAPI](https://img.shields.io/badge/OpenAPI-6BA539?style=flat\u0026logo=openapi-initiative\u0026logoColor=white) ![Scalar](https://img.shields.io/badge/Scalar-000000?style=flat\u0026logo=scalar\u0026logoColor=white)\n- **Containerization:** Docker ![Docker](https://img.shields.io/badge/Docker-2496ED?style=flat\u0026logo=docker\u0026logoColor=white) Docker Compose ![Docker Compose](https://img.shields.io/badge/Docker_Compose-2496ED?style=flat\u0026logo=docker\u0026logoColor=white)\n\n## To Setup Locally\n\n- This project uses Bun as its package manager. You need to have Bun installed on your system.\n- To install Bun, follow the official guide at [bun.sh](https://bun.sh).\n\n```bash\ngit clone https://github.com/GenieWizards/finance-management-api.git # Clone the repo\ncd finance-management-api # Navigate to the cloned folder\nbun install # Install necessary dependencies using Bun package manager\nbun dev # Start the server in development mode\n```\n\n## 🐳 Docker Development Setup\n\nThis project uses Docker for both development and production environments. Below are the instructions to get started.\n\n### Prerequisites\n\n- Docker and Docker Compose installed on your machine\n- Make (usually pre-installed on macOS/Linux)\n\n### Available Make Commands\n\n```bash\n# Show all available commands\nmake help\n\n# Development Commands\nmake dev-build    # Build development environment\nmake dev-up       # Start development environment\nmake dev-down     # Stop development environment\n\n# Production Commands\nmake build        # Build production environment\nmake up           # Start production environment\nmake down         # Stop production environment\nmake restart      # Restart the application\n\n# Utility Commands\nmake logs         # View logs from all containers\nmake ps           # List running containers\nmake shell        # Open a shell in the API container\nmake migrate      # Run database migrations\nmake clean        # Stop containers, remove volumes, and prune system\n```\n\n### Quick Start (Development)\n\n1. Clone the repository\n2. Copy the environment file:\n\n   ```bash\n   cp .env.example .env\n   ```\n\n3. Start the development environment:\n   ```bash\n   make dev-build\n   make dev-up\n   ```\n\nThe application will be available at `http://localhost:8998`\n\n### Development Notes\n\n- The development environment includes hot reloading. Any changes to the source code will automatically reflect in the running application.\n- When adding new dependencies (`bun add \u003cpackage\u003e`), you'll need to rebuild the containers:\n  ```bash\n  make dev-down\n  make dev-build\n  make dev-up\n  ```\n\n### Database\n\n- PostgreSQL is available at `localhost:5432`\n- Default credentials (development):\n  ```\n  User: root\n  Password: root\n  Database: finance-management-api-dev\n  ```\n- Migrations are run automatically when the container starts\n\n### Troubleshooting\n\nIf you encounter any issues:\n\n1. Clean Docker resources:\n\n   ```bash\n   make clean\n   ```\n\n2. Rebuild everything:\n\n   ```bash\n   make rebuild\n   ```\n\n3. Check logs:\n   ```bash\n   make logs\n   ```\n\n### Test Environment Setup\n\n1. Create a test environment file:\n\n   ```bash\n   cp .env.example .env.test\n   ```\n\n2. Update the `.env.test` file with the following configurations:\n\n   ```env\n   LOG_LEVEL=silent\n   DATABASE_URL=postgres://root:root@localhost:5432/finance-management-api-test\n   ```\n\n3. When running tests, the application will automatically use `.env.test` configuration:\n   ```bash\n   bun run test\n   ```\n\nNote: The test database will be automatically created and migrated when running tests.\n\n### Production Deployment\n\nFor production deployment:\n\n```bash\nmake build\nmake up\n```\n\nNote: Make sure to set appropriate environment variables for production use.\n\n## Check API Documentation\n\n- The API documentation is available at {{API_URL}}/reference\n\n## Database Migrations\n\nIf the schema is added/updated, you need to generate and apply the migrations:\n\n```bash\nbun db:generate # Generates the migration\nbun db:migrate # Applies the migration\n```\n\n## Contributing\n\nPlease read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.\n\n## License\n\nThis project is licensed under the MIT License - see the LICENSE file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeniewizards%2Fzenmo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgeniewizards%2Fzenmo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgeniewizards%2Fzenmo/lists"}