{"id":25937717,"url":"https://github.com/johnnyfr26/api.thinktech","last_synced_at":"2026-05-01T20:32:07.007Z","repository":{"id":278967622,"uuid":"937301123","full_name":"johnnyFR26/api.thinktech","owner":"johnnyFR26","description":"Api build with nodeJs for financial management service","archived":false,"fork":false,"pushed_at":"2025-03-03T21:43:22.000Z","size":47,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-03T22:28:56.298Z","etag":null,"topics":["api-rest","fastify","nodejs","prisma-orm","test-automation","typescript"],"latest_commit_sha":null,"homepage":"https://api-thinktech.vercel.app","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/johnnyFR26.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}},"created_at":"2025-02-22T20:06:28.000Z","updated_at":"2025-03-03T21:43:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"234c5154-bcdf-41d4-8185-05b69d8514e5","html_url":"https://github.com/johnnyFR26/api.thinktech","commit_stats":null,"previous_names":["johnnyfr26/api.thinktech"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnyFR26%2Fapi.thinktech","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnyFR26%2Fapi.thinktech/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnyFR26%2Fapi.thinktech/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnnyFR26%2Fapi.thinktech/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnnyFR26","download_url":"https://codeload.github.com/johnnyFR26/api.thinktech/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241775002,"owners_count":20018429,"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":["api-rest","fastify","nodejs","prisma-orm","test-automation","typescript"],"created_at":"2025-03-04T03:25:55.120Z","updated_at":"2026-05-01T20:32:06.956Z","avatar_url":"https://github.com/johnnyFR26.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📈 Financial Management API\n\nA robust financial management and expense control API built with **Fastify**, **Prisma**, **Zod**, **JWT**, and **Bcrypt**. This API allows secure authentication, user management, and financial transaction tracking to support financial management applications.\n\n---\n\n## 🚀 Features\n- **User Authentication:** Secure login with **JWT**.\n- **Data Validation:** Strong validation using **Zod**.\n- **Password Security:** Hashing and verification with **Bcrypt**.\n- **Database ORM:** **Prisma** for robust and easy database management.\n- **Fast and Lightweight:** Built with **Fastify** for performance.\n- **Financial Management:** Manage income, expenses, and budget efficiently.\n\n---\n\n## 🛠️ Tech Stack\n- **Node.js**\n- **Fastify**\n- **Prisma**\n- **Zod**\n- **JWT (JsonWebToken)**\n- **Bcrypt**\n- **PostgreSQL**\n\n---\n\n## 📂 Project Structure\n```\nfinancial-management-api/\n├─ controllers/    # Business logic\n├─ lib/            # External library configurations (e.g., Prisma client)\n├─ middlewares/    # Authentication and validation middleware\n├─ models/         # Interfaces of TS\n├─ routes/         # API endpoints\n├─ tests/          # Unit and integration tests\n└─ index.ts        # Application entry point\n```\n\n---\n\n## 🔥 Getting Started\n### 1. **Clone the repository:**\n```sh\ngit clone https://github.com/johnnyFR26/api.thinktech.git\ncd api.thinktech\n```\n\n### 2. **Install dependencies:**\n```sh\nnpm install\n```\n\n### 3. **Set up environment variables:**\nCreate a `.env` file in the root directory with the following variables:\n```env\nDATABASE_URL=\"file:./dev.db\"  # For SQLite (or use a PostgreSQL connection string)\nJWT_SECRET=\"your_secret_key\"\n```\n\n### 4. **Run Prisma migrations:**\n```sh\nnpx prisma migrate dev --name init\n```\n\n### 5. **Start the server:**\n```sh\nnpm run dev\n```\nAccess at: [http://localhost:3000](http://localhost:3000)\n\n---\n\n## 🚦 **API Endpoints**\n### Authentication\n- `POST /auth/login` - Authenticate a user and receive a JWT.\n\n### User Management\n- `GET /users` - Get all users.\n- `POST /users` - Create a new user.\n\n### Financial Transactions\n- `GET /transactions` - Get all financial transactions.\n- `POST /transactions` - Create a new transaction.\n- `DELETE /transactions/:id` - Delete a transaction.\n\n---\n\n## 🧪 **Running Tests**\n```sh\nnpm run test\n```\n\n---\n\n## 🔒 **Security Best Practices**\n- Store secrets in environment variables.\n- Hash passwords before saving to the database.\n- Validate all input with **Zod**.\n- Use HTTPS in production.\n\n---\n\n## 📄 **License**\nThis project is licensed under the MIT License.\n\n---\n\n## 👨‍💻 **Contributing**\nFeel free to open issues or submit pull requests to help improve this project!\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnnyfr26%2Fapi.thinktech","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnnyfr26%2Fapi.thinktech","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnnyfr26%2Fapi.thinktech/lists"}