Uma plataforma de comunidade desenvolvida em Flask que permite aos usuários criar perfis, compartilhar posts, interagir e se conectar. O projeto implementa um sistema completo de autenticação, gerenciamento de conteúdo e interface moderna inspirada em redes sociais.
Comunidade Dev é uma aplicação web full-stack desenvolvida para criar uma plataforma de comunidade onde desenvolvedores podem se conectar, compartilhar conhecimento e interagir. O projeto utiliza Flask como framework backend, implementando padrões modernos de desenvolvimento web, segurança e experiência do usuário.
- Sistema completo de autenticação e autorização
- Gerenciamento de perfil de usuário com upload de imagens
- Sistema de posts com criação, edição e exclusão
- Interface moderna e responsiva
- Design profissional inspirado em redes sociais
- Validação robusta de formulários
- Proteção de rotas e segurança de dados
- Flask 3.1.2 - Framework web minimalista e flexível para Python
- Flask-SQLAlchemy - ORM (Object-Relational Mapping) para interação com banco de dados
- Flask-WTF - Integração com WTForms para criação e validação de formulários seguros
- Flask-Bcrypt - Biblioteca para criptografia de senhas usando algoritmo bcrypt
- Flask-Login - Gerenciamento de sessões de usuário e autenticação
- Pillow (PIL) - Processamento e manipulação de imagens (redimensionamento automático)
- Python 3.9 - Linguagem de programação principal
- Jinja2 - Motor de templates integrado ao Flask para renderização de HTML
- SQLite - Banco de dados relacional embutido para armazenamento de dados
- Bootstrap 5.0.2 - Framework CSS para design responsivo e componentes UI
- HTML5 - Estrutura semântica das páginas
- CSS3 Custom - Estilos personalizados com variáveis CSS e design moderno
- JavaScript - Interatividade e funcionalidades do Bootstrap
- secrets - Geração de tokens seguros para nomes de arquivos
- os - Manipulação de caminhos e sistema de arquivos
- datetime - Gerenciamento de datas e timestamps
- Werkzeug - Servidor de desenvolvimento WSGI
Site com Flask/
├── main.py # Ponto de entrada da aplicação
├── comunidade/ # Módulo principal (Blueprint)
│ ├── __init__.py # Inicialização do Flask app e configurações
│ ├── routes.py # Definição de todas as rotas da aplicação
│ ├── forms.py # Formulários com Flask-WTF e validações
│ ├── models.py # Modelos de banco de dados (SQLAlchemy)
│ ├── static/ # Arquivos estáticos
│ │ ├── main.css # Estilos CSS personalizados
│ │ └── fotos_perfil/ # Diretório de fotos de perfil dos usuários
│ ├── templates/ # Templates HTML (Jinja2)
│ │ ├── base.html # Template base com estrutura comum
│ │ ├── navbar.html # Barra de navegação
│ │ ├── home.html # Página inicial com feed de posts
│ │ ├── login.html # Página de login e criação de conta
│ │ ├── perfil.html # Visualização do perfil do usuário
│ │ ├── editarperfil.html # Formulário de edição de perfil
│ │ ├── usuarios.html # Lista de todos os usuários
│ │ ├── criar_post.html # Formulário de criação de post
│ │ ├── post.html # Visualização individual de post
│ │ └── contato.html # Página de contato
│ └── testes.py # Arquivo para testes e desenvolvimento
├── instance/ # Diretório de instância (banco de dados)
│ └── comunidade.db # Banco de dados SQLite
└── venv/ # Ambiente virtual Python
- Python 3.9 ou superior
- pip (gerenciador de pacotes Python)
-
Clone o repositório:
git clone https://github.com/Rodrigogj8/site-comunidade-flask.git cd site-comunidade-flask -
Crie e ative o ambiente virtual:
# Windows python -m venv venv venv\Scripts\activate # Linux/Mac python3 -m venv venv source venv/bin/activate
-
Instale as dependências:
pip install flask flask-sqlalchemy flask-wtf flask-bcrypt flask-login pillow
-
Execute a aplicação:
python main.py
-
Acesse no navegador:
http://localhost:5000
- Sistema de registro de usuários com validação completa
- Login seguro com verificação de senha criptografada
- Gerenciamento de sessões com Flask-Login
- Logout funcional
- Proteção de rotas com decorator
@login_required - Criptografia de senhas usando Flask-Bcrypt (hash bcrypt)
- Validação de email duplicado no registro e edição de perfil
- Validação de formulários client-side e server-side
- CSRF Protection integrado via Flask-WTF
- Visualização de perfil com informações do usuário
- Edição de perfil (username, email)
- Upload de foto de perfil com validação de formato (JPG, PNG)
- Redimensionamento automático de imagens para 200x200 pixels
- Geração de nomes únicos para arquivos usando tokens hexadecimais
- Sistema de cursos - seleção múltipla (Python, Java, JavaScript, C#, TypeScript, SQL)
- Exibição de estatísticas (número de cursos e posts)
- Contador de posts por usuário
- Criação de posts com título e corpo
- Feed de posts na página inicial ordenado por data (mais recentes primeiro)
- Visualização individual de posts
- Edição de posts (apenas pelo autor)
- Exclusão de posts (apenas pelo autor) com confirmação via modal
- Associação de posts com autor (relacionamento Foreign Key)
- Data de criação automática com timestamp
- Links clicáveis nos títulos dos posts
- Design moderno inspirado em redes sociais (Instagram/Facebook)
- Layout responsivo para desktop, tablet e mobile
- Navbar dinâmica que adapta opções conforme estado de autenticação
- Cards estilizados para posts e perfis
- Feedback visual em formulários (validação em tempo real)
- Mensagens flash para feedback de ações
- Modais para confirmações importantes
- Tipografia moderna e legível
- Cores profissionais e consistentes
- Modelo Usuario com campos: id, username, email, senha, foto_perfil, cursos
- Modelo Post com campos: id, titulo, corpo, data_criacao, id_usuario
- Relacionamentos entre Usuario e Post (One-to-Many)
- Constraints de integridade (unique, nullable, foreign keys)
- Métodos auxiliares (contar_posts)
O projeto está em fase de desenvolvimento ativa com funcionalidades core implementadas e funcionais. A plataforma permite:
- Usuários se registrarem e fazerem login
- Criarem e gerenciarem seus perfis
- Compartilharem posts na comunidade
- Visualizarem posts de outros usuários
- Editarem e excluírem seus próprios posts
- Navegarem pela lista de usuários
- Padrão MVC (Model-View-Controller) implementado
- Blueprint para organização modular do código
- Separação de responsabilidades (routes, models, forms, templates)
- Código limpo e bem organizado
-
Sistema de Comentários
- Comentários em posts
- Edição e exclusão de comentários
- Contador de comentários por post
-
Sistema de Busca
- Busca por posts (título e conteúdo)
- Busca por usuários
- Filtros avançados
-
Interações Sociais
- Sistema de curtidas em posts
- Compartilhamento de posts
- Seguir/Deixar de seguir usuários
-
Melhorias no Feed
- Paginação de posts
- Ordenação por diferentes critérios
- Filtros por autor ou data
-
Notificações
- Notificações de novos comentários
- Notificações de interações
- Sistema de notificações em tempo real
-
Performance
- Implementação de cache
- Otimização de queries do banco de dados
- Lazy loading de imagens
-
Segurança
- Rate limiting para prevenção de spam
- Sanitização de inputs
- Validação de uploads mais robusta
-
Testes
- Testes unitários para models
- Testes de integração para rotas
- Testes de interface
-
Deploy
- Configuração para produção
- Migração para PostgreSQL
- Configuração de servidor web (Gunicorn)
- Deploy em plataforma cloud (Heroku, AWS, etc.)
-
Documentação
- Documentação da API
- Guia de contribuição
- Documentação de código
-
Interface
- Dark mode
- Animações mais suaves
- Melhorias na acessibilidade
-
Funcionalidades
- Preview de posts
- Upload de múltiplas imagens
- Editor de texto rico (Markdown)
- Tags/categorias para posts
Flask foi escolhido por ser um framework minimalista e flexível, permitindo controle total sobre a estrutura da aplicação. É ideal para projetos que começam pequenos mas precisam escalar, oferecendo apenas o essencial e permitindo adicionar extensões conforme necessário.
SQLite foi escolhido para desenvolvimento e MVP por ser:
- Fácil de configurar (sem servidor separado)
- Perfeito para pequenas/médias aplicações
- Fácil migração futura para PostgreSQL/MySQL
- Suportado nativamente pelo SQLAlchemy
Bootstrap 5 oferece:
- Componentes prontos e testados
- Sistema de grid responsivo
- Consistência visual
- Economia de tempo no desenvolvimento
- Suporte a múltiplos dispositivos
A estrutura em blueprint permite:
- Organização modular do código
- Facilidade de manutenção
- Escalabilidade do projeto
- Separação clara de responsabilidades
- Senhas são criptografadas usando bcrypt antes de serem armazenadas
- Proteção CSRF implementada em todos os formulários
- Validação de dados tanto no cliente quanto no servidor
- Rotas protegidas exigem autenticação
- Uploads de arquivos são validados (tipo e tamanho)
- Banco de dados SQLite ativo e funcional
- Relacionamentos entre tabelas configurados corretamente
- Constraints de integridade implementadas
- Timestamps automáticos para posts
- Imagens são redimensionadas automaticamente para otimizar armazenamento
- Queries otimizadas com relacionamentos lazy
- Estrutura preparada para implementação de cache
- Código organizado seguindo boas práticas
- Comentários e documentação inline onde necessário
- Estrutura preparada para testes
- Fácil manutenção e extensão
Este projeto é de código aberto e está disponível para fins educacionais e de aprendizado.
Desenvolvido como projeto de aprendizado e aplicação de conhecimentos em Flask e desenvolvimento web.
Última atualização: Janeiro 2026
Status: Em desenvolvimento ativo
Versão: 1.0.0