{"id":21373306,"url":"https://github.com/duquejo/thumbsup_backend","last_synced_at":"2026-04-10T01:40:10.335Z","repository":{"id":224150655,"uuid":"761821340","full_name":"duquejo/ThumbsUp_backend","owner":"duquejo","description":"ThumbUp - We are a website that tracks the sentiment of its users on trending and controversial people from different fields, including politics, business, media, and entertainment.","archived":false,"fork":false,"pushed_at":"2024-02-24T03:11:38.000Z","size":104,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-22T21:16:00.755Z","etag":null,"topics":["aws","ioredis","javascript","nodejs","redis","terraform"],"latest_commit_sha":null,"homepage":"https://thumbsup.duquejo.com/","language":"HCL","has_issues":false,"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/duquejo.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}},"created_at":"2024-02-22T14:55:13.000Z","updated_at":"2024-02-24T03:16:12.000Z","dependencies_parsed_at":"2024-02-24T05:21:15.294Z","dependency_job_id":"be772105-13b1-479f-9cca-5a20d43275a9","html_url":"https://github.com/duquejo/ThumbsUp_backend","commit_stats":null,"previous_names":["duquejo/thumbsup_backend"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FThumbsUp_backend","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FThumbsUp_backend/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FThumbsUp_backend/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/duquejo%2FThumbsUp_backend/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/duquejo","download_url":"https://codeload.github.com/duquejo/ThumbsUp_backend/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243847061,"owners_count":20357317,"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":["aws","ioredis","javascript","nodejs","redis","terraform"],"created_at":"2024-11-22T08:27:15.019Z","updated_at":"2025-12-31T00:20:22.311Z","avatar_url":"https://github.com/duquejo.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Welcome to Thumbsup™️ Backend - Zemoga FED 👍\n\nWith the objective of challenging myself and delivering a simple but well-structured ecosystem, I built the following microservices architecture using some famous and recommended applications used in the market.\nAll the Infrastructure orchestration is given by Terraform, AWS Resources (NodeJS ephemeral lambdas, API Gateway v2) handles the basic HTTP routing and logic implementation, Redis as a Low latency persistency system is my choosen one for the persistency component.\n\n# Technologies used\n- Node JS\n- Javascript\n- Redis (Redis Cloud)\n- AWS Lambdas\n- AWS API Gateway v2\n- Terraform (AWS Provider)\n\n## Utilities\n- ioredis: Very useful redis client for Node JS.\n\n# Getting started (Local development)\n\n1) Clone the [repository](https://github.com/duquejo/ThumbsUp_backend).\n2) In each lambda install required dependencies using:\n```sh\nnpm install\n```\n\n3) Copy `.env.sample` file and rename it as `.env` for local development, later, fill this parameters:\n```sh\nREDIS_HOST=\nREDIS_PORT=\nREDIS_USERNAME=\nREDIS_PASSWORD=\n```\nYou could use Redis Cloud (Free tier) to achieve that or use a dockerized one to simulate a real instance.\n\n4. If you want to execute the lambdas locally, you can use this command, but is very important to install globally this utility:\n```sh\nnpm install -g lambda-local\nnpm run dev\n```\nYou can use this tool as an API or a command line tool. I already use it for testing local lambdas.\n\n5. Test the local endpoints using your favorite tool and consuming this endpoint `http://localhost:8008`.\n6. **NOTE**: The AWS API Gateway has actually a integration that transforms and parses the content messages, so, try to send the testing data as a string like this (_Stringified JSON_):\n\n```txt\n\"{\\\"celebrities\\\":{}}\"\n```\n\n# General architecture overview\nAs I shown in the frontend repository documentation, this is the general architecture overview:\n![ThumbsUp microservices architecture](./architecture.png)\n\n## Repository rules\nIf you want to contribute, you must follow the [GitFlow](https://nvie.com/posts/a-successful-git-branching-model/) basic rules.\n\n# Future Challenges and beloved ideas 🌨️\n- Add more components in order to guarantee votes update.\n- Implement an SQS Strategy using AWS or another service like RabbitMQ or Kafka.\n  - Enqueue not sent votes though DLQ strategy with the objetive to improve resiliency.\n- Add general observability and trace, using Datadog, Dynatrace...\n- Change JS logic to Typescript and improve lambda bundle code optimization.\n- Add prettier and Lint.\n- Add SonarQube and create Quality gates.\n- Add unit tests, integration tests.\n\n+ For obviously reasons 😅 this backend is not going to be alive forever 💸, so, in a few months I'm going to destroy all resources _(Thank you terraform for made it easy)_.\n\n_Thank you so much_ 🎶","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduquejo%2Fthumbsup_backend","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduquejo%2Fthumbsup_backend","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduquejo%2Fthumbsup_backend/lists"}