Skip to content

This project is a basic CRUD with a strong infrastructure and documentation, taking the metaphor, a feather that is light, but forged in an indescribable way.

License

Notifications You must be signed in to change notification settings

JoaoMiottiTec/featherforge

Repository files navigation

FeatherForge

CI License Quality Gate Status Maintainability Rating Reliability Rating Security Rating Duplicated Lines (%) Vulnerabilities Node.js TypeScript Prisma Docker

This project is a backend developed in Node.js with TypeScript and Fastify, designed to serve as a portfolio case and also as the foundation for a desktop application. The goal is have a tiny CRUD core and a heavyweight AWS pipe

The entire API will be documented and tested using Postman, including examples and environment variables for ease of use.

Objectives

  • Create a robust, modular, and scalable tiny API.
  • Containerized the API using Docker to scale the application
  • Building a pipe using github actions and send to AWS

Roadmap

  • API create : Make a tiny API using Node.js and typescript
  • Docker config containerized a application
  • CI/CD with Github actions -> build, test, coverage, image push

Architecture

The system follows a modular monolith design with clear domain boundaries, packaged into a single deployable service on AWS.

  • Modular domain structure — each module has its own routes, services, validations, and data models.
  • Centralized route registration — all modules are registered in one place for maintainability.
  • TypeScript (ESM) — modern syntax, strict typing.
  • AWS-hosted — containerized on ECS Fargate, with RDS for persistence and CloudWatch for logging/monitoring.

Quality & Security

  • Testing using vitest to unit and integration tests
  • CI/CD to automated pipe with build, test and deployment
  • Lint Code linting code with ESLint and TS
  • Container with image security scanning and variables builds

Prerequesites

  • Node.js 20 or later
  • Docker and Docker Compose
  • PostgreSQL

Main Technologies

  • Node.js 22+
  • TypeScript
  • Fastify
  • Prisma ORM with PostgreSQL
  • Zod for validation
  • Vitest for testing
  • Nodemon and TSX for development
  • Docker

Installation

Option A: Docker Compose (Recommended)

  1. Clone the repository:

    Git clone https://github.com/JoaoMiottiTec/featherforge.git
    cd featherforge
    
  2. Configure environment variables:

    #Criar o arquivo .env
        touch .env
    
  3. Give a valor to the variable keys in .env:

    DATABASE_URL=
     PORT=
     HOST=
    
     JWT_SECRET=
     JWT_EXPIRES=
    
     JWT_REFRESH_SECRET=
     JWT_REFRESH_EXPIRES=
    
  4. Start the service:

    docker-compose up -d
    

Planned Modules API (Development Order)

  1. Auth & Users – User registration, login, and profile management. [x]
  2. Sessions – Training session logging (duration, effort, jump count). []
  3. Goals – Weekly/monthly goal management. []
  4. Device – Receiving data from Arduino device. []
  5. Analytics – Training statistics and reports. []
  6. AI – Training suggestions based on history. []
  7. Exports & Reports – Exporting data to CSV/PDF. []

Contributors

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if necessary
  5. Submit a pull request

Developing:

  • João Vitor Miotti

About

This project is a basic CRUD with a strong infrastructure and documentation, taking the metaphor, a feather that is light, but forged in an indescribable way.

Resources

License

Stars

Watchers

Forks

Packages