Skip to content

About

UNI*VERSE: A social network by and for university students.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

2 Commits

Folders and files

Repository files navigation

UNI★VERSO — Rede Social Acadêmica

Trabalho Prático — Programação e Desenvolvimento de Software II (PDS2)
Departamento de Ciência da Computação — UFMG
Professor: Hector Azpurua


Integrantes

Nome
Pedro Martins Justi
Rodrigo de Freitas Lanza
Luiz Henrique Torres Cabral
André Rafael Batista
Matheus Araujo Pinto Carvalho

Descrição do Problema e motivação

A universidade é um lugar habitado por pessoas com diferentes vivências, culturas, interesses e conhecimentos — e é também um dos ambientes mais ricos para formar amizades que duram a vida inteira. Há muito valor na troca de informação entre estudantes de diferentes regiões, universidades, cursos e turmas: dúvidas sobre disciplinas, indicações de materiais de estudo, avisos sobre eventos institucionais, oportunidades de estágio e iniciação científica, e discussões acadêmicas que enriquecem a formação de todos os envolvidos.

No entanto, essa comunicação costuma acontecer de forma dispersa — em grupos de aplicativos de mensagens sem organização, murais físicos desatualizados ou e-mails institucionais ignorados —, sem um espaço dedicado, estruturado e exclusivo para a comunidade acadêmica. Além disso, as amizades formadas na universidade tendem a se restringir ao próprio círculo imediato: colegas de turma, de curso, de laboratório. E se pudesse ser diferente?

O UNI★VERSO surge como resposta a esse problema. Pensado como o metaverso dos universitários — daí o nome —, é uma rede social projetada do zero para estudantes de qualquer universidade, onde o acesso é restrito a usuários portadores de e-mail institucional válido. Isso garante um ambiente seguro, composto exclusivamente por pessoas vivendo uma fase da vida semelhante e pertencentes à comunidade acadêmica. Na plataforma, alunos podem criar perfis com informações pessoais e acadêmicas, publicar postagens em diferentes formatos (texto, imagem e vídeo), interagir com o conteúdo de outros usuários por meio de Estrelas (curtidas) e comentários, seguir colegas de qualquer instituição, e participar de Galáxias — comunidades organizadas por curso, disciplina ou qualquer interesse em comum.


Arquitetura

O projeto segue o padrão de camadas Controller → Service → Repository, onde cada camada conhece apenas a imediatamente abaixo dela:

  • Controller — recebe os dados de entrada, delega ao Service e retorna uma resposta padronizada (Response).
  • Service — aplica as regras de negócio (validações, hashing de senha, lógica de relacionamento).
  • Repository — executa as operações de persistência no banco de dados via SQLiteConnection.

Principais classes

Classe Responsabilidade
User Representa um usuário registrado na rede
UserProfile Armazena informações acadêmicas do usuário
CredentialHelper Validação de e-mail institucional e hash de senha
Post Representa uma postagem ou comentário encadeado
Media Classe abstrata base para Image e Video
Comunity Representa uma comunidade de usuários
IRepository<T> Interface genérica de repositório (CRUD)
SQLiteConnection Gerencia a conexão com o banco de dados SQLite

Tecnologias

  • Linguagem: C++17
  • Banco de dados: SQLite3
  • Documentação: Doxygen
  • Controle de versão: Git / GitHub

Estrutura do Repositório

.
├── design/
│   ├── CRC Cards/
│   ├── html/
│   └── UserStories.md
├── include/
│   ├── controllers/
│   │   ├── CommunityController.hpp
│   │   ├── PostController.hpp
│   │   └── UserController.hpp
│   ├── entities/
│   │   ├── Community.hpp
│   │   ├── Date.hpp
│   │   ├── Image.hpp
│   │   ├── Media.hpp
│   │   ├── Post.hpp
│   │   ├── User.hpp
│   │   ├── UserProfile.hpp
│   │   └── Video.hpp
│   ├── helpers/
│   │   ├── CredentialHelper.hpp
│   │   ├── ResponseJSON.hpp
│   │   └── SQLiteConnection.hpp
│   ├── repositories/
│   │   ├── CommunityRepository.hpp
│   │   ├── IRepository.hpp
│   │   ├── PostRepository.hpp
│   │   └── UserRepository.hpp
│   └── services/
│       ├── CommunityService.hpp
│       ├── PostService.hpp
│       └── UserService.hpp
├── src/
│   ├── controllers/
│   ├── entities/
│   ├── helpers/
│   ├── repositories/
│   └── services/
├── tests/
├── .gitignore
├── Doxyfile
└── README.md

Documentação

Para gerar a documentação com Doxygen:

doxygen Doxyfile

A documentação será gerada na pasta docs/html/. Abra docs/html/index.html no navegador para visualizá-la.

About

UNI*VERSE: A social network by and for university students.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages