GithubHelp home page GithubHelp logo

johnpetros / unipetros Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 8.04 MB

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

License: MIT License

Python 42.65% CSS 0.89% HTML 44.59% JavaScript 11.81% Dockerfile 0.06%
apexcharts docker fatec-sjc flask python school-project univer

unipetros's Introduction

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 👋🏻

unipetros's People

Contributors

johnpetros avatar

Watchers

 avatar

unipetros's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.