Skip to content

raydalima/WALK

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎓 WALK - Plataforma de Gestão para Cursinhos Populares

Django Python PostgreSQL

Sistema completo de gestão educacional desenvolvido em Django para cursinhos populares, com 3 portais distintos: Aluno, Professor e Administrativo.

📋 Índice

✨ Funcionalidades

🎒 Portal do Aluno

  • 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

👨‍🏫 Portal do Professor

  • Gerenciamento de disciplinas
  • Upload de materiais didáticos
  • Cadastro de links para aulas gravadas
  • Visualização de alunos matriculados
  • Dashboard com estatísticas

⚙️ Área Administrativa

  • 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

🛠 Tecnologias

  • 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

📁 Estrutura do Projeto

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

🚀 Instalação Local

Pré-requisitos

  • Python 3.11 ou superior
  • pip (gerenciador de pacotes Python)
  • Git
  • PostgreSQL (opcional para produção)

Passo a Passo

  1. Clone o repositório
git clone <seu-repositorio>
cd sistema_walk_django
  1. Crie e ative o ambiente virtual

Linux/Mac:

python3 -m venv venv
source venv/bin/activate

Windows:

python -m venv venv
venv\Scripts\activate
  1. Instale as dependências
pip install -r requirements.txt
  1. Configure as variáveis de ambiente
cp .env.example .env
# Edite o arquivo .env com suas configurações
  1. Execute as migrações
python manage.py makemigrations
python manage.py migrate
  1. Crie um superusuário
python manage.py createsuperuser
  • Email: admin@walk.com
  • Username: admin
  • Password: (escolha uma senha segura)
  • Tipo de usuário: ADMIN
  1. Colete os arquivos estáticos
python manage.py collectstatic --noinput
  1. Execute o servidor de desenvolvimento
python manage.py runserver
  1. Acesse o sistema

⚙️ Configuração

Arquivo .env

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

Configuração do PostgreSQL

  1. Instale o PostgreSQL
# Ubuntu/Debian
sudo apt-get install postgresql postgresql-contrib

# macOS
brew install postgresql
  1. 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
  1. Configure o .env
USE_SQLITE=False
DB_NAME=walk_db
DB_USER=walk_user
DB_PASSWORD=sua_senha
DB_HOST=localhost
DB_PORT=5432

📖 Uso

Criar Usuários de Teste

# 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')

Fluxo de Uso

  1. Login: Acesse http://localhost:8000/login
  2. Dashboard: Será redirecionado automaticamente baseado no tipo de usuário
  3. Portal do Aluno: Visualize disciplinas, materiais e aulas
  4. Portal do Professor: Gerencie suas disciplinas e faça upload de conteúdo
  5. Área Administrativa: Gerencie todo o sistema

🌐 Deploy

Deploy no Render

  1. Crie uma conta no Render (https://render.com)

  2. Crie um novo PostgreSQL Database

    • Nome: walk-db
    • Copie as credenciais
  3. 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
  4. 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

Deploy no Railway

  1. Crie uma conta no Railway (https://railway.app)

  2. Crie um novo projeto

    • Add PostgreSQL
    • Add GitHub Repo
  3. 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}}
  1. Deploy automático será feito a cada push

Deploy no Heroku

  1. Instale o Heroku CLI

  2. Crie um app

heroku create walk
  1. Adicione PostgreSQL
heroku addons:create heroku-postgresql:mini
  1. Configure variáveis
heroku config:set SECRET_KEY='sua-chave'
heroku config:set DEBUG=False
heroku config:set USE_SQLITE=False
  1. Crie o Procfile
web: gunicorn walk.wsgi:application
release: python manage.py migrate --noinput
  1. Deploy
git push heroku main

🔑 Credenciais Padrão

Apó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):

Aluno (exemplo):

🎨 Cores do Sistema

  • Primária: #0056b3 (Azul Escuro)
  • Secundária: #007bff (Azul)
  • Fundo: #f8f9fa (Cinza Claro)
  • Texto: #333333 (Cinza Escuro)

📝 Comandos Úteis

# 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 check

🤝 Contribuindo

Contribuições são bem-vindas! Sinta-se à vontade para abrir issues e pull requests.

📄 Licença

Este projeto é de código aberto e está disponível para uso educacional.

📧 Suporte

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! 🎓

About

Sistema de Gestão pra cursinho popular

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages