AlicornIO
December 4, 2025 · View on GitHub
📋 Sobre o projeto
AlicornIO é uma plataforma inteligente de processamento de imagens que redefine a forma como os usuários interagem com conteúdo visual. Projetada para ser rápida, escalável e fácil de usar, permite aplicar melhorias automáticas, detectar objetos e transformar imagens com efeitos artísticos utilizando modelos avançados de inteligência artificial.
✨ Principais funcionalidades
- 🖼️ Upload em massa de imagens para processamento automático
- 🤖 Modelos de IA personalizáveis para diferentes tipos de melhorias e análises
- ⚡ Notificações em tempo real via WebSockets sobre o status do processamento
- 📁 Gerenciamento de projetos com organização por pastas e categorias
- 🔐 Armazenamento seguro em CDN com links protegidos para compartilhamento
- 📈 Escalabilidade automática para suportar múltiplos usuários simultaneamente
- 🎨 Efeitos artísticos e detecção de objetos com IA
🎯 Público-alvo
A AlicornIO é voltada para:
- Criadores de conteúdo
- Designers e artistas digitais
- Pesquisadores em visão computacional
- Empresas que processam grandes volumes de imagens
🏗️ Arquitetura
O projeto utiliza uma arquitetura de microsserviços orientada a eventos (EDA), garantindo escalabilidade, resiliência e manutenibilidade.
AlicornIO/
├── frontend/ # Aplicação Angular
├── backend/ # API NestJS + Microsserviços
└── docker-compose.yml # Orquestração de serviços
🔧 Stack tecnológica
Frontend
- Framework: Angular 19.2.5
- Linguagem: TypeScript
- Comunicação: WebSocket para notificações em tempo real
- Estilização: CSS/SCSS
Backend
- Framework: NestJS
- Linguagem: TypeScript
- Runtime: Node.js 18.19+
- Padrões: CQRS, Event Sourcing, Outbox Pattern
Infraestrutura
- Broker de Mensagens: RabbitMQ (amqplib)
- Cache: Redis (ioredis)
- Banco de Dados: PostgreSQL (Prisma ORM)
- Armazenamento: Cloudinary
- Containerização: Docker + Docker Compose
- API em Tempo Real: WebSocket (Socket.io)
Documentação de APIs
- REST: Swagger/OpenAPI
- Eventos: AsyncAPI
🚀 Como começar
Pré-requisitos
Clonando o repositório
git clone https://gitlab.com/jala-university1/cohort-2/CSSD-352.GA.T2.25.M2/SB/proj_grupo_03/alicornio.git
cd AlicornIO
Configuração rápida com Docker
Para executar toda a stack de uma vez:
# Iniciar todos os serviços (frontend, backend, banco de dados, cache, etc.)
docker-compose up -d
# Verificar se os containers estão rodando
docker-compose ps
# Ver logs em tempo real
docker-compose logs -f
Configuração manual
Se preferir executar os serviços individualmente:
🎨 Frontend
Para instruções detalhadas de instalação e execução do frontend:
cd frontend
npm install
npm start
O frontend estará disponível em http://localhost:4200
⚙️ Backend
Para instruções detalhadas de instalação e execução do backend:
cd backend
npm install
npm run start:dev
O backend estará disponível em http://localhost:3000
📚 Documentação adicional
Estrutura de pastas
AlicornIO/
│
├── frontend/ # Aplicação Angular
│ ├── src/
│ │ ├── app/ # Componentes, serviços e módulos
│ │ ├── assets/ # Arquivos estáticos
│ │ └── environments/ # Configurações de ambiente
│ ├── package.json
│ └── README.md # 📖 Documentação específica do frontend
│
├── backend/ # API NestJS
│ ├── src/
│ │ ├── modules/ # Módulos da aplicação
│ │ ├── common/ # Utilitários e guards
│ │ ├── config/ # Configurações
│ │ └── main.ts # Entry point
│ ├── package.json
│ └── README.md # 📖 Documentação específica do backend
│
├── docker-compose.yml # Orquestração de serviços
├── .env.example # Exemplo de variáveis de ambiente
└── README.md # Este arquivo
Variáveis de ambiente
Copie o arquivo .env.example para .env e configure as variáveis necessárias:
cp .env.example .env
Principais variáveis:
- Credenciais do banco de dados PostgreSQL
- Credenciais do Redis
- Credenciais do RabbitMQ
- Chaves da API Cloudinary
- Secrets JWT para autenticação
- Configurações de CORS
🧪 Testes
Frontend
cd frontend
npm test # Testes unitários
npm run test:coverage # Cobertura de testes
Backend
cd backend
npm test # Testes unitários
npm run test:e2e # Testes end-to-end
npm run test:cov # Cobertura de testes
📦 Build para produção
Frontend
cd frontend
npm run build
# Arquivos gerados em: dist/
Backend
cd backend
npm run build
# Arquivos gerados em: dist/
Docker (Produção)
# Build das imagens
docker-compose -f docker-compose.prod.yml build
# Executar em modo produção
docker-compose -f docker-compose.prod.yml up -d
🔄 Fluxo de desenvolvimento
- Criar branch para sua feature e área do desenvolvimento:
git checkout -b feature/front/nova-feature - Fazer commit das mudanças:
git commit -m 'feat(front): adiciona nova feature' - Push para o repositório:
git push origin feature/front/nova-feature - Abrir Pull Request para revisão
Padrão de commits
Seguimos o padrão Conventional Commits:
feat: Nova funcionalidadefix: Correção de bugdocs: Alterações na documentaçãostyle: Formatação de códigorefactor: Refatoração de códigotest: Adição ou correção de testeschore: Tarefas de manutenção
🛠️ Principais tecnologias e versões
| Tecnologia | Versão | Descrição |
|---|---|---|
| Angular | 19.2.5 | Framework frontend |
| NestJS | 11.0.10 | Framework backend |
| Node.js | 18.19+ | Runtime JavaScript |
| TypeScript | ~5.6.2 | Linguagem de programação |
| PostgreSQL | 16+ | Banco de dados relacional |
| Redis | 7+ | Cache e sessões |
| RabbitMQ | 3.13+ | Broker de mensagens |
| Docker | 24+ | Containerização |
👥 Equipe
👩🏻💻 Gabriela Diniz Santos;
👨🏻💻 Luiz Félix Nascimento;
👨🏻💻 Pedro Lucas Oliveira de Medeiros;
👨🏻💻 Yago Bezerra Wanderley.
✨ Demo
https://github.com/user-attachments/assets/803d77fa-8a60-4c4d-bd62-cbe5d967e560