Skip to content

ominira-unicamp/quaac.com

This branch is up to date with isaacfritsch/quaac.com:main.

Folders and files

NameName
Last commit message
Last commit date
Aug 17, 2024
Jan 9, 2024
Jul 28, 2024
Sep 28, 2024
Sep 28, 2024
Aug 17, 2024
Aug 29, 2024
Jul 31, 2024
Jan 8, 2024
Aug 14, 2024
Sep 28, 2024
Jan 8, 2024
Jan 9, 2024
Jan 9, 2024
Aug 17, 2024
Aug 11, 2024

Repository files navigation

1 quaac.com

fotologopato

O quaac.com é uma plataforma colaborativa de questões, criada com o objetivo de ajudar estudantes de qualquer área a cumprirem com seus objetivos educacionais. Por meio do compartilhamento de provas anteriores, resoluções, comentários e discussões, o quaac.com se torna um ambiente perfeito para colaboração mútua e aprimoramento acadêmico, tudo de forma gratuita.

As principais tecnologias utilizadas foram: ● Django para o back-end e parte do front-end com seu sistema de templates;
● HTMX usado para requisições Ajax;
● Alpine.js para adicionar interatividade e funcionalidades dinâmicas;
● Bulma escolhido para facilitar a adição do CSS, com um estilo elegante;
● Heroku para o deploy, que já inclui PostgreSQL [9] em seu processo de deployment para o banco de dados SQL, aproveitando o suporte nativo do Django ao PostgreSQL e ao uso de ORM (Object-Relational-Mapping), o que facilita consultas e manipulação de dados;
● Digital Ocean utilizado para o armazenamento de arquivos de mídia não gerenciados pelo Django em produção, através de um bucket S6, facilitando o gerenciamento de arquivos na nuvem;
● jstree escolhido para implementar o sistema de tags em forma de árvore, permitindo a visualização e organização hierárquica das tags;
● Vanilla JS para receber eventos e administrar processos específicos junto ao HTMX, utilizando JavaScript puro sem dependências adicionais;
● WhiteNoise integrado ao Django para servir arquivos estáticos em produção, eliminando a necessidade de um servidor separado para esse propósito;

2.1 Estrutura da Plataforma

diagramadecasos
Figura 1 - Diagrama de casos de uso da plataforma

A Figura 1 apresenta um diagrama simplificado das principais interações que o usuário pode realizar no quaac.com. O site é dividido em quatro seções principais: Home, Comunidade, Questões e Perfil do Usuário, e a seguir será explicado como cada uma dessas interações acontece em cada seção.

2.1.1 Home
Apresenta uma descrição e informações de uso, a criação da comunidade e seu painel de seleção. As comunidades são ambientes com objetivos educacionais específicos, nos quais os usuários poderão inserir questões relacionadas a esses objetivos. A figura 2 mostra o exemplo atual de uso da Home, com uma comunidade criada, a Unicamp: para questões de provas anteriores das matérias da Unicamp. home
Figura 2 - Página da Home do quaac.com

A barra de navegação possui alguns botões (Home, Login e Register), quando o usuário clicar no botão “Register” um modal aparecerá para inserir as informações de criação de um novo usuário. O mesmo vale para o botão “login”, para inserir as informações de login. A figura 3 mostra esses modais. O botão “Home” redireciona para a página da home. login register
Figura 3 - Modais de Registro e Login no quaac.com

2.1.2 Comunidade
Para encontrar questões o usuário poderá filtrar pelas tags criadas pelo moderador e outras opções de tags padrão: não respondidas, com comentários, com solução e todas as tags incluídas, como mostra a Figura 4. comunidade
Figura 4 - Página da comunidade Unicamp

As questões são filtradas pelas tags selecionadas e apresentadas em ordem decrescente de curtidas, um tipo simples de sistema de recomendação colaborativo. O moderador pode criar/editar tags e configurá-las em um sistema de árvores.

2.1.3 Questão
Qualquer usuário pode inserir uma questão clicando no botão "Adicionar nova questão", sendo redirecionado para o formulário de adição de uma nova questão, como mostra a Figura 5. formularioquestao
Figura 5 - Página do formulário para adicionar uma nova questão

Após a criação, as questões podem ser acessadas pelos usuários, que podem respondê-las, curtir, acessar soluções/comentários ou contribuir com soluções/comentários pertinentes (Figura 6). Cada solução e comentário podem ter comentários resposta. questao
Figura 6 - Uma questão inserida por um usuário na comunidade Unicamp

2.1.4 Perfil do Usuário
É possível editar as informações pessoais, verificar comunidades e questões criadas, questões marcadas como respondidas ou curtidas, e questões com comentários ou soluções (Figura 7). Com isso, o perfil se torna uma ferramenta importante para revisão e aprimoramento dos estudos por questões. perfil
Figura 7 - Página de perfil de um usuário

Essa não foi uma descrição extensa das páginas e funcionalidades da plataforma, apenas uma descrição geral dos principais pontos.

Instalação

Requisitos

Antes de começar, certifique-se de que você tenha os seguintes requisitos instalados:

  • Python 3.8+
  • pip (gerenciador de pacotes Python)
  • Node.js (para a instalação de pacotes de frontend)

Instalação

Siga os passos abaixo para configurar o ambiente de desenvolvimento do Quaac.

1. Clone o Repositório

git clone https://github.com/isaacfritsch/quaac.com.git
cd quaac

2. Crie um Ambiente Virtual

Recomendamos o uso de um ambiente virtual para isolar as dependências do projeto.

python -m venv venv
source venv/bin/activate  # No Windows use: venv\Scripts\activate

3. Instale as Dependências

Use o pip para instalar as dependências do backend e npm para o frontend.

pip install -r requirements.txt
npm install

Faça as migrações do Django e inicie o servidor local

python manage.py migrate
python manage.py runserver

About

plataforma colaborativa de questões

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • HTML 52.5%
  • Python 47.5%