Plataforma de incubação e mentoria para projetos de empreendedorismo estudantil. O sistema gerencia todo o ciclo de vida dos projetos: submissão, avaliação, incubação, mentoria e vitrine pública.
- Python 3.10+
- Django 5.x - Framework web
- Django REST Framework - API REST
- SimpleJWT - Autenticação JWT
- PostgreSQL - Banco de dados (SQLite para desenvolvimento)
- Pillow - Processamento de imagens
- Python 3.10 ou superior
- PostgreSQL (opcional para desenvolvimento)
git clone <url-do-repositorio>
cd ypetecpython -m venv venv
source venv/bin/activate # Linux/Mac
# ou
venv\Scripts\activate # Windowspip install -r requirements.txtcp .env.example .envEdite o arquivo .env com suas configurações:
DEBUG=True
SECRET_KEY=sua-chave-secreta-aqui
DATABASE_URL=postgres://usuario:senha@localhost:5432/ypetec
JWT_SECRET_KEY=chave-jwt-para-tokens
ALLOWED_HOSTS=localhost,127.0.0.1
CORS_ALLOWED_ORIGINS=http://localhost:3000Nota: Para desenvolvimento, você pode omitir
DATABASE_URLe o sistema usará SQLite automaticamente.
python manage.py migratepython manage.py createsuperuserpython manage.py runserverO servidor estará disponível em http://localhost:8000.
ypetec/
├── config/ # Configurações Django
│ ├── settings/
│ │ ├── base.py # Configurações base
│ │ ├── local.py # Desenvolvimento
│ │ └── production.py # Produção
│ └── urls.py # Rotas principais
├── apps/
│ ├── core/ # Modelos base e utilitários
│ ├── contas/ # Usuários e autenticação
│ ├── editais/ # Editais (chamadas para submissão)
│ ├── projetos/ # Projetos e submissões
│ ├── avaliacoes/ # Avaliações de projetos
│ ├── mentorias/ # Solicitações de mentoria
│ ├── publicacoes/ # Vitrine pública
│ └── home/ # Página inicial
├── templates/ # Templates HTML
├── static/ # Arquivos estáticos
└── uploads/ # Uploads de usuários
A API REST está disponível em /api/. Principais endpoints:
| Endpoint | Descrição |
|---|---|
/api/auth/login |
Login (retorna tokens JWT) |
/api/auth/register |
Registro de novo usuário |
/api/auth/me |
Dados do usuário autenticado |
/api/users/ |
Gerenciamento de usuários (admin) |
/api/calls/ |
Editais |
/api/projects/ |
Projetos |
/api/submissions/ |
Submissões |
/api/evaluations/ |
Avaliações |
/api/mentorship-requests/ |
Solicitações de mentoria |
/api/publications/ |
Publicações (vitrine) |
A API usa autenticação JWT. Após o login, inclua o token no header:
Authorization: Bearer <access_token>
| Papel | Descrição |
|---|---|
| ADMIN | Gerencia editais, avalia projetos, publica na vitrine |
| ALUNO | Cria projetos, submete a editais, solicita mentoria |
| MENTOR | Fornece mentoria aos projetos incubados |
| INVESTIDOR | Visualiza oportunidades de investimento |
PRE_SUBMISSAO → SUBMETIDO → APROVADO → INCUBADO
↓
REPROVADO
↓
AJUSTES (pode resubmeter)
# Criar migrações
python manage.py makemigrations
# Aplicar migrações
python manage.py migrate
# Shell interativo
python manage.py shell
# Coletar arquivos estáticos (produção)
python manage.py collectstaticPara rodar em produção:
- Configure
DJANGO_SETTINGS_MODULE=config.settings.production - Defina
DEBUG=Falsee umaSECRET_KEYsegura - Configure o banco PostgreSQL via
DATABASE_URL - Use Gunicorn como servidor WSGI:
gunicorn config.wsgi:application --bind 0.0.0.0:8000Para evitar alertas de segurança e garantir que os segredos não sejam usados em build-time:
- Em Railway → Service → Variables, cadastre como variáveis de runtime:
SECRET_KEYJWT_SECRET_KEYRESEND_API_KEY- (e demais segredos, como
DATABASE_URL)
- Não use segredos em build args.
- Não use
ARG/ENVde build para segredos em Dockerfile/Nixpacks customizado. - Faça redeploy do serviço após atualizar as variáveis.
Nesta base, o deploy foi ajustado para executar collectstatic e migrate no start/runtime (start.sh), evitando dependência de segredos no build.
Este projeto é proprietário e de uso restrito.