{"id":26862759,"url":"https://github.com/viniciusferreira7/finance-api","last_synced_at":"2026-04-17T07:31:44.828Z","repository":{"id":234532419,"uuid":"787598492","full_name":"viniciusferreira7/finance-api","owner":"viniciusferreira7","description":"finance-api","archived":false,"fork":false,"pushed_at":"2025-04-14T14:43:50.000Z","size":716,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-14T15:47:48.983Z","etag":null,"topics":["ci","docker","fastify","github-actions","nodejs","postgresql","prisma","scalar","swagger","typescript","vitest"],"latest_commit_sha":null,"homepage":"https://finance-api-jr5p.onrender.com/reference","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/viniciusferreira7.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}},"created_at":"2024-04-16T20:36:52.000Z","updated_at":"2025-04-14T14:44:08.000Z","dependencies_parsed_at":"2024-05-17T16:39:46.486Z","dependency_job_id":"e8734ef1-ac3f-44ba-87c5-f2e7cd34b6b8","html_url":"https://github.com/viniciusferreira7/finance-api","commit_stats":null,"previous_names":["viniciusferreira7/finance-api"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/viniciusferreira7/finance-api","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusferreira7%2Ffinance-api","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusferreira7%2Ffinance-api/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusferreira7%2Ffinance-api/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusferreira7%2Ffinance-api/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/viniciusferreira7","download_url":"https://codeload.github.com/viniciusferreira7/finance-api/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/viniciusferreira7%2Ffinance-api/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31919897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T18:22:33.417Z","status":"online","status_checked_at":"2026-04-17T02:00:06.879Z","response_time":62,"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":["ci","docker","fastify","github-actions","nodejs","postgresql","prisma","scalar","swagger","typescript","vitest"],"created_at":"2025-03-31T02:37:47.953Z","updated_at":"2026-04-17T07:31:44.807Z","avatar_url":"https://github.com/viniciusferreira7.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Finance API\n\n- 🔗 [Swagger Documentation](https://finance-api-jr5p.onrender.com/documentation)  \n- 🔗 [Scalar API Reference](https://finance-api-jr5p.onrender.com/reference)\n  \n## **Main Features:**\n\n- [x] Secure authentication for user registration and login.\n- [x] Financial transaction tracking (income and expenses) with attributes like amount, category, description, and date.\n- [x] Automatic calculation of the current balance and categorization for detailed analysis.\n- [x] Management of custom categories (create, edit, and delete).\n\n### Technical Requirements:\n\n- [x] Fast performance for calculations.\n- [x] Scalability to handle a large number of users and data.\n- [x] Intuitive and responsive interface, compatible with browsers and mobile devices.\n- [x] Must include E2E and unity testing.\n- [X] Must have run test in github's CI environment \n- [x] Advanced security (HTTPS, JWT authentication, attack prevention).\n\n## 💻 Prerequisites\n\nBefore you begin, ensure you have met the following requirements:\n\n- You have installed the latest version of **Node.js**.\n- You must have **Docker** installed\n\n## 🚀 Getting Started\n\n### 1. Clone the repository:\n\nOpen the terminal and use the following command to clone the project to your computer:\n\n```bash\ngit clone https://github.com/viniciusferreira7/finance-api\n```\n\n### 2. Access the project directory:\n\n```bash\ncd \u003cPROJECT_DIRECTORY_NAME\u003e\n```\n\n### 3. Install the project:\n\n```bash\nnpm install\n```\n\n### 4. You have create environments variables:\n- this env you need to run application:\n\n```bash\nNODE_ENV=dev\nPORT=3333\n\n#AUTH\nJWT_SECRET=\nFINANCE_APP_TOKEN=\n\n# DATABASE\nDATABASE_USERNAME=\nDATABASE_PASSWORD=\nDATABASE_NAME=\nDATABASE_URL=\n```\n- Create a file with name is **.env** and enter with your values \n\n### 5. Run docker compose:\n\n```bash\n docker compose --env-file .env up -d\n```\n\n### 6. Run the migrations:\n\n```bash\n  npx prisma migrate deploy\n```\n\n### 7. **(if you want):** You can run a command to seed data in database, to facilitate:\n\n\n```bash\n  npx prisma db seed\n```\n\n## Start the project:\n\n```bash\n  npm start:dev\n```\n\n## Running the Project with Docker\n\nThis project can be easily run using **Docker** and **Docker Compose**. Below are the instructions to run the project in a container.\n\n## Prerequisites\n\nBefore you start, make sure you have:\n\n- [Docker](https://www.docker.com/products/docker-desktop) installed on your machine.\n- [Docker Compose](https://docs.docker.com/compose/) installed (usually included with Docker Desktop).\n\n## Steps to Run the Project\n\n### 1. Clone the Repository\n\nFirst, clone the project repository to your local machine:\n\n```bash\ngit clone https://github.com/username/repository-name.git\ncd repository-name\n```\n\n### 2. Set Up Environment Variables\n\nCreate .env file following .env.example\n\n### 3. Run the Containers\n\n```bash\nnpm run start:containers\n```\n\nThis command will:\n\n- Build the container images.\n- Run PostgreSQL (finance-api-postgresql container).\n- Run the application (finance-api container).\n- Run Prisma migrations if configured.\n\n### 4. Check the Status\nAfter running the command, you can check if the containers are working properly by running:\n\n```bash\ndocker-compose ps\n```\nThis will list the active containers and show their status\n\n### 5. Access the Application\n\n#### Swagger\n- **http://localhost:3333/documentation**\n\n#### Scalar\n- **http://localhost:3333/reference**\n\n### Prisma studio\n- **http://localhost:5555**\n\n### 6. Stop the Containers\n\nTo stop the running containers, use the following command:\n\n```bash\ndocker-compose down\n```\n\nThis will stop and remove all the created containers, but will keep the volumes and networks persistent.\n\n\n## Packages and Versions\n### Dependencies:\n\n- @faker-js/faker: 8.4.1,\n- @fastify/jwt: 8.0.0,\n- @fastify/swagger: 8.14.0,\n- @fastify/swagger-ui: 4.0.0,\n- @prisma/client: 5.12.1,\n- @scalar/fastify-api-reference: 1.24.35,\n- bcryptjs: 2.4.3,\n- chalk: 5.3.0,\n- dayjs: 1.11.11,\n- fastify: 4.26.2,\n- supertest: 7.0.0,\n- zod: ^3.22.4,\n- zod-to-json-schema: 3.23.2\n\n ### Development Dependencies:\n\n- @rocketseat/eslint-config: 2.2.2,\n- @types/bcryptjs: 2.4.6,\n- @types/fastify-jwt: 0.8.1,\n- @types/node: ^20.12.7,\n- @types/supertest: 6.0.2,\n- @vitest/coverage-v8: 1.5.3,\n- @vitest/ui: 1.5.3,\n- dotenv: 16.4.5,\n- eslint: 8.56.0,\n- eslint-plugin-simple-import-sort: 12.1.0,\n- npm-run-all: 4.1.5,\n- prisma: 5.12.1,\n- tsup: ^8.0.2,\n- tsx: ^4.7.2,\n- typescript: ^5.4.5,\n- vite-tsconfig-paths: 4.3.2,\n- vitest: 1.5.3","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviniciusferreira7%2Ffinance-api","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviniciusferreira7%2Ffinance-api","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviniciusferreira7%2Ffinance-api/lists"}