Sistema completo de gestão educacional desenvolvido em Django para cursinhos populares, com 3 portais distintos: Aluno, Professor e Administrativo.
- Funcionalidades
- Tecnologias
- Estrutura do Projeto
- Instalação Local
- Configuração
- Uso
- Deploy
- Credenciais Padrão
- Visualização de disciplinas matriculadas
- Acesso a materiais de estudo (PDFs, documentos)
- Acesso a aulas gravadas (links YouTube/Vimeo)
- Blog com conteúdos preparatórios
- Dashboard personalizado
- Gerenciamento de disciplinas
- Upload de materiais didáticos
- Cadastro de links para aulas gravadas
- Visualização de alunos matriculados
- Dashboard com estatísticas
- CRUD completo de alunos
- CRUD completo de professores
- Gerenciamento de disciplinas
- Sistema de matrículas (vincular aluno-disciplina)
- Gerenciamento de blog (notícias, avisos)
- Dashboard com estatísticas gerais
- Django Admin integrado
- Framework: Django 5.2
- Linguagem: Python 3.11+
- Banco de Dados: PostgreSQL (produção) / SQLite (desenvolvimento)
- Frontend: Bootstrap 5, Bootstrap Icons
- Processamento de Imagens: Pillow
- Gerenciamento de Variáveis: python-decouple
- Servidor de Produção: Gunicorn
- Arquivos Estáticos: Whitenoise
sistema_walk_django/
├── accounts/ # Autenticação e usuários
├── students/ # Portal do aluno
├── teachers/ # Portal do professor
├── admin_panel/ # Área administrativa
├── courses/ # Disciplinas e matrículas
├── materials/ # Materiais e vídeo-aulas
├── blog/ # Blog de notícias
├── config/ # Configurações Django
├── templates/ # Templates HTML
│ ├── accounts/
│ ├── students/
│ ├── teachers/
│ ├── admin_panel/
│ ├── blog/
│ └── includes/
├── static/ # Arquivos estáticos
├── media/ # Uploads (materiais, fotos)
├── manage.py
├── requirements.txt
├── .env.example
└── README.md
- Python 3.11 ou superior
- pip (gerenciador de pacotes Python)
- Git
- PostgreSQL (opcional para produção)
- Clone o repositório
git clone <seu-repositorio>
cd sistema_walk_django- Crie e ative o ambiente virtual
Linux/Mac:
python3 -m venv venv
source venv/bin/activateWindows:
python -m venv venv
venv\Scripts\activate- Instale as dependências
pip install -r requirements.txt- Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações- Execute as migrações
python manage.py makemigrations
python manage.py migrate- Crie um superusuário
python manage.py createsuperuser- Email: admin@walk.com
- Username: admin
- Password: (escolha uma senha segura)
- Tipo de usuário: ADMIN
- Colete os arquivos estáticos
python manage.py collectstatic --noinput- Execute o servidor de desenvolvimento
python manage.py runserver- Acesse o sistema
- Aplicação: http://localhost:8000
- Django Admin: http://localhost:8000/admin
Copie o arquivo .env.example para .env e configure:
# Django
SECRET_KEY=sua-chave-secreta-aqui
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
# Banco de Dados
USE_SQLITE=True # True para SQLite, False para PostgreSQL
# PostgreSQL (se USE_SQLITE=False)
DB_NAME=walk_db
DB_USER=postgres
DB_PASSWORD=sua-senha
DB_HOST=localhost
DB_PORT=5432- Instale o PostgreSQL
# Ubuntu/Debian
sudo apt-get install postgresql postgresql-contrib
# macOS
brew install postgresql- Crie o banco de dados
sudo -u postgres psql
CREATE DATABASE walk_db;
CREATE USER walk_user WITH PASSWORD 'sua_senha';
ALTER ROLE walk_user SET client_encoding TO 'utf8';
ALTER ROLE walk_user SET default_transaction_isolation TO 'read committed';
ALTER ROLE walk_user SET timezone TO 'America/Sao_Paulo';
GRANT ALL PRIVILEGES ON DATABASE walk_db TO walk_user;
\q- Configure o .env
USE_SQLITE=False
DB_NAME=walk_db
DB_USER=walk_user
DB_PASSWORD=sua_senha
DB_HOST=localhost
DB_PORT=5432# Execute o shell do Django
python manage.py shell
# No shell Python:
from accounts.models import User
from students.models import Student
from teachers.models import Teacher
# Criar um aluno
aluno_user = User.objects.create_user(
username='aluno1',
email='aluno@teste.com',
password='senha123',
first_name='João',
last_name='Silva',
user_type='ALUNO'
)
Student.objects.create(user=aluno_user, enrollment_number='2026001')
# Criar um professor
prof_user = User.objects.create_user(
username='prof1',
email='prof@teste.com',
password='senha123',
first_name='Maria',
last_name='Santos',
user_type='PROFESSOR'
)
Teacher.objects.create(user=prof_user, specialization='Matemática')- Login: Acesse http://localhost:8000/login
- Dashboard: Será redirecionado automaticamente baseado no tipo de usuário
- Portal do Aluno: Visualize disciplinas, materiais e aulas
- Portal do Professor: Gerencie suas disciplinas e faça upload de conteúdo
- Área Administrativa: Gerencie todo o sistema
-
Crie uma conta no Render (https://render.com)
-
Crie um novo PostgreSQL Database
- Nome: walk-db
- Copie as credenciais
-
Crie um novo Web Service
- Conecte ao seu repositório GitHub
- Build Command:
pip install -r requirements.txt && python manage.py collectstatic --noinput && python manage.py migrate - Start Command:
gunicorn walk.wsgi:application
-
Configure as variáveis de ambiente no Render
SECRET_KEY=<gere-uma-chave-secreta-forte>
DEBUG=False
ALLOWED_HOSTS=seu-app.onrender.com
USE_SQLITE=False
DB_NAME=<do-render-postgres>
DB_USER=<do-render-postgres>
DB_PASSWORD=<do-render-postgres>
DB_HOST=<do-render-postgres>
DB_PORT=5432
-
Crie uma conta no Railway (https://railway.app)
-
Crie um novo projeto
- Add PostgreSQL
- Add GitHub Repo
-
Configure as variáveis de ambiente
SECRET_KEY=<gere-uma-chave-secreta>
DEBUG=False
ALLOWED_HOSTS=${{RAILWAY_STATIC_URL}}
USE_SQLITE=False
DB_NAME=${{PGDATABASE}}
DB_USER=${{PGUSER}}
DB_PASSWORD=${{PGPASSWORD}}
DB_HOST=${{PGHOST}}
DB_PORT=${{PGPORT}}
- Deploy automático será feito a cada push
-
Instale o Heroku CLI
-
Crie um app
heroku create walk- Adicione PostgreSQL
heroku addons:create heroku-postgresql:mini- Configure variáveis
heroku config:set SECRET_KEY='sua-chave'
heroku config:set DEBUG=False
heroku config:set USE_SQLITE=False- Crie o Procfile
web: gunicorn walk.wsgi:application
release: python manage.py migrate --noinput
- Deploy
git push heroku mainApós criar o superusuário, você pode criar usuários de teste:
Administrador:
- Email: admin@walk.com
- Senha: (definida por você no createsuperuser)
Professor (exemplo):
- Email: professor@walk.com
- Senha: prof123456
Aluno (exemplo):
- Email: aluno@walk.com
- Senha: aluno123456
- Primária: #0056b3 (Azul Escuro)
- Secundária: #007bff (Azul)
- Fundo: #f8f9fa (Cinza Claro)
- Texto: #333333 (Cinza Escuro)
# Criar migrações
python manage.py makemigrations
# Aplicar migrações
python manage.py migrate
# Criar superusuário
python manage.py createsuperuser
# Coletar arquivos estáticos
python manage.py collectstatic
# Executar servidor
python manage.py runserver
# Shell interativo
python manage.py shell
# Verificar problemas
python manage.py checkContribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.
Este projeto é de código aberto e está disponível para uso educacional.
Para dúvidas e suporte, entre em contato através do email: suporte@walk.com
Desenvolvido para cursinhos populares - Educação de qualidade para todos! 🎓