Skip to content

Aplicação web para apresentar e gerenciar a Unipetros, uma universidade de tecnologia além da compreensão

License

Notifications You must be signed in to change notification settings

JohnPetros/unipetros

Repository files navigation

Unipetros 🎓


🖥️ Sobre o Projeto

Unipetros é um site web para um universidade fictícia do mesmo nome.

A aplicação possui duas sessões, uma voltada para a apresetação e descrição da universidade e outra para administrar dados pertinentes a uma instiuição de ensino, como cursos, dicisplinas, professores e alunos.

O objetivo ao realizar esse projeto foi aprender de forma avançanda o desensolvimento de aplicações web utilizando Flask, um framework Python, bem como trabalhar com Docker containers personalizados utilizando Docker hub durante a disciplina de Sistemas Operacionais e Redes na FATEC São José dos Santos.

⏹️ Demonstração

Landing page
Home page
Página de contato
Home page
Página de sobre
Home page
Página de dashboard
Home page
Página de tabela
Home page
Página de detalhes de professor
Home page

✨ Funcionalidades

Landing Page

  • A página inicial deve possuir estilo landing page para captar a atenção do usuário.
  • Essa página deve possuir as sessões:
    • Vantagens de estudar na Unipetros
    • Depoimento de um aluno/aluna falando bem da Unipetros
    • Depoimento de um aluno/aluna falando bem da Unipetros
    • Últimos posts do blog fictício da Unipetros

Página de contato

  • Deve haver um página contendo um formulário para o usuário entrar em contato com a Unipetros
  • Essa página deve exibir endereço, número de telefone e e-mail e um formulário de contato da Unipetros
  • O formulário deve conter
    • Nome do usuário
    • E-mail do usuário
    • Mensagem do usuário

Página contando a história da Unipetros

  • Deve haver uma página que fale mais sobre a Unipetros
  • Essa página conter as sessões:
    • Um resumo da origem e fundação da Unipetros
    • Uma mapa indicando a localização da Unipetros
    • Dados a respeito da infraestrutura da Unipetros
    • Nome e descrição dos programas de extensão da Unipetros
    • Nome, cargo, local de trabalho e depoimento de ex-alunos da Unipetros

Navegação

  • Deve haver links de acesso para qualquer uma das páginas do site

Login

  • O usuário administrador deve fazer login para poder acessar o dashboard utilizando e-mail e senha
  • O usuário deve poder escolher manter ou não sua sessão mesmo que navegador venha a fechar
  • O sistema deve bloquear o acesso ao dashboard caso não haja uma sessão ativa
  • O sistema guardar a rota da página que o usuário não conseguiu acessar em um primeiro momento para que caso ele faça login ele seja redirecionado imediatamente para a página em questão
  • O usuário deve poder fazer logout, ou seja, encerrar sua sessão

Gráficos

  • O dashboard deve exibir gráficos de diversos formatos a respeito dos dados cadastrados no sistema
  • Deve gráfico que indique a quantidade matrículas por disciplina
  • Deve haver um gráfico que indique a quantidade posts por categoria de post
  • Deve haver um gráfico que indique a frequência dos alunos em um período de 7, 30 ou 90 dias (escolha do usuário)
  • Deve haver um gráfico que indique a quantidade de alunos por gênero
  • Deve haver um gráfico que indique a quantidade de professores por disciplina
  • Deve haver um gráfico que indique a quantidade de matrículas ativas e desativadas em um período de 7, 30 ou 90 dias (escolha do usuário)

Tabela de professores

  • Deve ser exibido uma tabela que contenha todos os professores de forma paginada
  • Cada linha dessa tabela deve exibir:
    • Avatar
    • Nome
    • E-mail
    • Disciplinas
    • Idade
    • Gênero
  • Deve ser possível filtrar professores por nome, email ou disciplina
  • Deve ser possível deletar um ou mais professors de uma vez
  • Deve ser possível adicionar um professor via formulário contendo os campos:
    • Nome
    • E-mail
    • Telefone
    • Data de nascimento
    • Gênero
    • Senha
    • Confirmação de senha
    • Avatar
    • Um ou mais disciplinas
  • Deve ser possível adicionar um professor via arquivo CSV, em cada uma das suas colunas corresponde a um campo do formulário citado no item anterior

Página de professor

  • Deve haver uma página própria que exiba os dados do professor
  • Deve ser exibido o avatar de outros professores que também lecionam as mesma disciplinas que o professor em questão
  • Deve haver um formulário para editar qualquer dado do professors em questão

⚙️ Arquitetura

🛠️ Tecnologias, ferramentas e serviços externos

Este projeto foi desenvolvido usando as seguintes tecnologias:

✔️ Python para programar o backend

✔️ Flask Para servir como framework para construir o servidor web, fazer validação dos formulários e gerenciar a autenticação do usuário

✔️ MySQL para ser banco de dados

✔️ HTML Para fazer a marcação das páginas do site

✔️ CSS - para estilizar os elementos do site

✔️ JavaScript - Para adicionar interatividade nos elementos do site

✔️ ApexCharts.js - Para renderizar gráficos

✔️ Docker - para criar e gerenciar os containers da aplicação

Para mais detalhes acerca das dependências do projeto, como versões específicas, veja o arquivo package.json


🚀 Como rodar a aplicação?

🔧 Pré-requisitos

Antes de baixar o projeto você necessecitará ter instalado na sua máquina as seguintes ferramentas:

  • Git para manilupar repostitórios Git
  • Docker para manipular Docker containers

Além disto é bom ter um editor para trabalhar com o código, como o VSCode

Além disto é crucial configurar as variáveis de ambiente em um arquivo chamado .env antes de executar a aplicação. veja o arquivo .env.example para ver quais variáveis devem ser configuradas

📟 Rodando a aplicação

# Clone este repositório
$ git clone https://github.com/JohnPetros/unipetros.git

# Acesse a pasta do projeto
$ cd unipetros

# Rode o container da aplicação
$ docker compose up

💪 Como contribuir

# Fork este repositório
$ git clone https://github.com/JohnPetros/unipetros.git

# Cria uma branch com a sua feature
$ git checkout -b minha-feature

# Commit suas mudanças:
$ git commit -m 'feat: Minha feature'

# Push sua branch:
$ git push origin minha-feature

Você deve substituir 'minha-feature' pelo nome da feature que você está adicionando

Você também pode abrir um nova issue a respeito de algum problema, dúvida ou sugestão para o projeto. Ficarei feliz em poder ajudar, assim como melhorar este projeto


📝 Licença

Esta aplicação está sob licença do MIT. Consulte o Arquivo de licença para obter mais detalhes sobre.


Feito com 💜 por John Petros 👋🏻

About

Aplicação web para apresentar e gerenciar a Unipetros, uma universidade de tecnologia além da compreensão

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published