# Agorium: Aprendizado Gamificado e Colaborativo Um aplicativo educacional que visa transformar a experiência de aprendizado. ## Introdução ### Apresentação do Agorium >Descreva brevemente o que é o Agorium, seus objetivos e público-alvo (estudantes, professores, etc.). Inspirado pela palavra "ágora", o Agorium conecta estudantes em tempo real, permitindo que façam perguntas, compartilhem conhecimento e interajam em um ambiente gamificado. Com um sistema de posts vinculados a disciplinas e um ranking que premia o engajamento, o Agorium torna o aprendizado uma experiência social e interativa. O nome Agorium deriva da palavra "agora", remetendo à ideia de imediatismo e conexão em tempo real. Tal como o antigo "ágora" grego, onde as pessoas se reuniam para discutir e compartilhar conhecimentos, o Agorium busca criar um espaço virtual onde os estudantes possam colaborar de maneira dinâmica. Ao promover uma cultura de troca de informações e aprendizagem ativa, o nome reflete a missão do aplicativo de unir a comunidade estudantil em um ambiente de interação constante e fluida. ### Contexto e Problema Explique a motivação para criar um aplicativo clone do Reddit no ambiente acadêmico. Exemplifique problemas que Agorium pretende resolver, como a necessidade de uma plataforma de troca de conhecimento no contexto educacional. ### Propósito do Artigo Defina o propósito do artigo, que é documentar o processo de desenvolvimento e os desafios técnicos enfrentados. ## Análise de Requisitos ### Funcionalidades do Agorium Descreva as principais funcionalidades do aplicativo (criação de postagens, comentários, votação, etc.). Relacione a gamificação como diferencial, explicando como ela foi incorporada ao sistema para engajar os usuários. Requisitos Técnicos: Explique as necessidades técnicas, como escalabilidade, segurança (uso de JWT para autenticação), envio de emails com PHPMailer, e integração com bancos de dados (MySQL). Conexão e Colaboração: Os alunos podem se conectar uns com os outros, fazer perguntas e receber respostas de forma rápida e eficiente. Sistema de Ranking: Um sistema de gamificação que recompensa os alunos pelo engajamento com posts e respostas, tornando a experiência de aprendizado competitiva e divertida. Posts Vinculados a Disciplinas: Os tópicos são organizados por matérias, facilitando o foco no conteúdo específico e a busca de conhecimento relevante. ```mermaid erDiagram User { int id PK string username string email string passwordHash string fullName string avatar datetime createdAt datetime updatedAt } Post { int id PK string title text content datetime createdAt datetime updatedAt int user_id FK int category_id FK int favorite_comment_id FK } Category { int id PK string name text description } Tag { int id PK string name } PostTag { int id PK int post_id FK int tag_id FK } Comment { int id PK text content datetime createdAt datetime updatedAt int post_id FK int user_id FK int parent_comment_id FK } Vote { int id PK string voteType datetime createdAt int user_id FK int post_id FK int comment_id FK } %% Relationships Post ||--o| User: "belongs to" Post ||--o| Category: "belongs to" Post ||--o{ PostTag: "has many" PostTag ||--o| Tag: "belongs to" Comment ||--o| Post: "belongs to" Comment ||--o| User: "belongs to" Comment ||--o| Comment: "parent comment" Vote ||--o| User: "belongs to" Vote ||--o| Post: "optional (post)" Vote ||--o| Comment: "optional (comment)" ``` ## Arquitetura e Tecnologias Front-End O front-end do Agorium é desenvolvido utilizando tecnologias modernas como: React: Um framework de JavaScript para a criação de interfaces dinâmicas e responsivas. TypeScript: Para garantir maior segurança no código, utilizando tipagem estática. Vite: Ferramenta de build que oferece uma experiência de desenvolvimento extremamente rápida. Radix: Um conjunto de componentes acessíveis para React. TailwindCSS: Um framework de CSS utilitário que facilita o design responsivo. Back-End O back-end do Agorium é robusto e escalável, utilizando as seguintes tecnologias: PHP (Slim Framework): Um microframework ágil para construir APIs de forma eficiente. Doctrine ORM: Ferramenta de mapeamento objeto-relacional para trabalhar com banco de dados de forma simplificada. MySQL: Banco de dados relacional amplamente utilizado. JWT (JSON Web Token): Para autenticação segura e baseada em tokens. PHPMailer: Para o envio de e-mails, automatizando notificações e comunicações entre os usuários. Ambiente de Desenvolvimento Para facilitar o desenvolvimento colaborativo e garantir consistência entre os ambientes, o Agorium utiliza o Docker para configurar e gerenciar os serviços necessários. Abaixo está uma visão geral da configuração do ambiente: Configuração com Docker devcontainer.json: Arquivo que define o ambiente de desenvolvimento utilizando o Visual Studio Code e Docker. Ele garante que todos os desenvolvedores utilizem a mesma configuração de extensão e editor. docker-compose.yml: Configura vários serviços, como o Nginx, MySQL, Mailhog e Swagger, necessários para o funcionamento completo do ambiente de desenvolvimento. O Docker garante que o ambiente de desenvolvimento seja replicável e escalável, permitindo que a equipe de desenvolvimento trabalhe de maneira eficiente e integrada. Detalhes dos Serviços Nginx: Servidor web utilizado para rotear as requisições entre os diferentes serviços, incluindo a interface com o Mailhog para testar envio de e-mails e o Swagger para documentar a API. MySQL: Banco de dados responsável por armazenar informações de usuários, posts e interações dentro do aplicativo. Mailhog: Serviço de teste de envio de e-mails. Swagger: Ferramenta para documentação interativa da API. O Agorium é construído com uma arquitetura moderna, dividida em dois componentes principais: o front-end e o back-end. ### Frontend Descreva o uso de React, TypeScript, Vite, Radix, e TailwindCSS. Explique a escolha dessas tecnologias para garantir performance e boa experiência do usuário. ### Backend Detalhe a implementação usando PHP Slim Framework, Doctrine ORM, MySQL, e JWT para autenticação. Inclua os motivos para a escolha dessas ferramentas e como elas se integram no projeto. Comunicação entre Frontend e Backend: Descreva como o front-end comunica-se com o back-end via REST API, e os padrões de arquitetura que você seguiu (como MVC, por exemplo). 4. Funcionalidades Específicas Postagens e Comentários: Explique como foi implementado o CRUD de postagens e comentários. Relacione a lógica de votos e a funcionalidade de respostas. Gamificação: Descreva como a gamificação foi integrada na plataforma (sistema de pontos, conquistas, rankings, etc.), incluindo as tecnologias ou bibliotecas utilizadas. Filas para Envio de Emails: Explique a implementação da fila para o envio de emails utilizando o PHP (caso tenha implementado) ou como planeja essa parte. 5. Desafios Enfrentados Problemas Técnicos: Discuta alguns dos principais desafios técnicos, como integração entre sistemas, performance, segurança, ou escalabilidade. Soluções Implementadas: Detalhe as soluções desenvolvidas para superar esses desafios. 6. Resultados ## Protótipo Funcional Apresente o estágio atual do desenvolvimento. Inclua screenshots ou exemplos de telas do aplicativo funcionando. Avaliação de Performance: Discuta a performance do aplicativo e como ele se comporta em termos de responsividade e escalabilidade. ## Conclusão e Próximos Passos ### Conclusões Resuma o impacto esperado do Agorium na educação e como ele poderá contribuir para o ambiente acadêmico. O Agorium busca revolucionar a maneira como os alunos aprendem e interagem, utilizando a gamificação como ferramenta para promover o engajamento e a colaboração. Com uma arquitetura tecnológica moderna e uma missão clara de conectar estudantes, o aplicativo visa proporcionar uma experiência de aprendizado divertida e eficiente. Ao unir o agora com o espaço colaborativo de conhecimento, o Agorium se posiciona como uma plataforma educacional dinâmica e inovadora. ### Futuras Implementações Discuta as funcionalidades que ainda podem ser adicionadas no futuro e como o aplicativo pode evoluir, como integração com IA para respostas automáticas ou mais elementos de gamificação. Logos ![Slim](https://img.shields.io/badge/Slim%20Framework-9bbb79?style=for-the-badge&logo=data:image/png;base64,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) ![Nginx](https://img.shields.io/badge/nginx-%23009639.svg?style=for-the-badge&logo=nginx&logoColor=white) ![MySQL](https://img.shields.io/badge/mysql-4479A1.svg?style=for-the-badge&logo=mysql&logoColor=white) ![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white) ![Vite](https://img.shields.io/badge/vite-%23646CFF.svg?style=for-the-badge&logo=vite&logoColor=white) ![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB) ![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white) VEM KO PAI