📦 D-Jà Vue sem Docker
Se quiser saber mais sobre a diferença entre SEM ou COM Docker, leia mais aqui
📦 Executando o 🦄 backend sem usar Docker
Requesitos:
- Git
- Python +3.9 (para o backend)
- Node JS +14 (para o frontend - em uma etapa seguinte)
- um terminal shell (por ser um terminal linux, um terminal WSL no Windows ou um PowerShell), ⚠️ PowerShell pode ocorrer algumas diferenças nos comandos
TIP
Você pode usar qualquer versão do Python, contudo, o ideal seria usar localmente a mesma versão do Python que será usada no ambiente de produção. Por este motivo, você pode escolher a versão de Python na instalação. 💡 No arquivo Dockerfile é possível verificar a versão de Python que será utilizado no ambiente de produção (inclusive é possível alterar se necessário).
O projeto twitterclone foi criado anteriormente, e para dar continuidade é necessário entrar dentro do diretório do projeto. Veja ...
cd twitterclone/cd twitterclone/Na sequência vamos criar um ambiente virtual Python para o backend e instalar as dependências:
WARNING
⚠️ Não esqueça de ativar o ambiente (source .venv/bin/activate), caso você esqueça de ativar as dependências serão instaladas na sua máquina fora do ambiente virtual do seu projeto.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txtpython -m venv .venv
source .venv/bin/activate
pip install -r requirements-dev.txtCom o ambiente virtual Python pronto, você pode usar o comando pip freeze e verificar se todas as dependências python foram instaladas. Outro ponto importante a ser feito neste momento é executar um formatador de código (lint) para garantir que todo o código está correto.
black twitterclone/black twitterclone/INFO
👉 Lembre-se que o nome twitterclone/ pode ser diferente baseado no que na resposta que você deu ao nome do projeto (twitterclone)
Agora está na hora de rodar as migrações, ou melhor, criar as tabelas iniciais dentro do banco de dados (baseado no aquivo models). Basicamente os modelos que o Django têm, tais como, Users, Sessions e também o modelo inicial do nosso projeto, no nosso caso a tabela Tweets. O comando migrate do Django irá ler todas as migrações e criar as tabelas correspondentes.
INFO
Para este projeto, o banco de dados padrão é o SQLITE caso tenhamos respondido yes e também 2 para as seguintes opções:
...
[14/27] use_sqlite_local_env (no): yes
...
[21/27] Select docker_usage
1 - 🐳 use docker by default
2 - 📦 use venv npm by default
Choose from [1/2] (1): 2
... ...
[14/27] use_sqlite_local_env (no): yes
...
[21/27] Select docker_usage
1 - 🐳 use docker by default
2 - 📦 use venv npm by default
Choose from [1/2] (1): 2
...👉 Caso precise alterar para o banco Postgres, não esqueça que não será necessário recriar todo o projeto novamente, será necessário apenas mudar o arquivo .env
Rodar as migrações para todas as apps Django:
./manage.py migrate./manage.py migrateE rapidamente teremos nossa base de dados criada, então podemos criar um novo usuário:
./manage.py createsuperuser
Usuário: admin
Endereço de email: admin@example.br
Password: **********
Password (again): **********
Superuser created successfully../manage.py createsuperuser
Usuário: admin
Endereço de email: admin@example.br
Password: **********
Password (again): **********
Superuser created successfully.Finalmente podemos rodar o projeto localmente:
./manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
October 17, 2023 - 08:39:10
Django version 4.1.7, using settings 'dashboardtarget.dashboardtarget.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C../manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
October 17, 2023 - 08:39:10
Django version 4.1.7, using settings 'dashboardtarget.dashboardtarget.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.👉 abra seu browser e acesse a url http://localhost:8000, a aplicação deve estar em execução

Outra coisa que você pode fazer neste momento:
- acessar a url
http://localhost:8000/admine depois de logar (usando o usuário que criamos antes) abrir o Administrador do Django - executar o comando
pytestpara passar todos os testes criados no backend - executar o comando
./manage.py shell_plus --ipython --print-sqle executar codigos, tais como:Tweet.objects.all()ouTweet.objects.create(description="My first post using djavue")
INFO
👉 Lembre o nome Tasks no código Tasks.objects.all() é o nome do modelo que você escolheu ou pode ser diferente no seu caso. Caso tenha escolhido outro nome.
- Acesse a url
http://localhost:8000/api/docse verifique a documentação da API - Acesse a url
http://localhost:8000/api/posts/tweets/liste obtenha a lista de tweets criadas na API de backend
INFO
👉 Novamente os nomes posts e tweets podem ser diferentes baseado nas suas respostas para app_name and model_name
INFO
👉 Se você obter a receber a mensagem: {"detail": "Unauthorized"} quando acessar a url http://localhost:8000/api/posts/tweets/list, você pode acessar a url http://localhost:8000/admin/login/ e logar usando o usuário que você criou com o comando createsuperuser e fazer uma nova tentativa.
📦 Executando o ⚡️ frontend sem usar Docker
Requisitos:
- Git
- Node JS +14 (para o frontend)
- um terminal shell (por ser um terminal linux, um terminal WSL no Windows ou um PowerShell), ⚠️ PowerShell pode ocorrer algumas diferenças nos comandos
- O backend em execução
Abra um segundo terminal (no primeiro deverá estar rodando o backend). Navegue dentro do diretório do projeto e na pasta do frontend.
cd twitterclone/frontendcd twitterclone/frontendUse o npm para instalar todas as dependências do frontend. Observe que as dependências estão listadas dentro do arquivo package.json. Observe também que o ambiente deste projeto, comparado com o diretório .venv que foi criado para armazenar todas as dependências do backend, para projetos de frontend, este diretório é node_modules e não precisamos criar ou informar qualquer coisa. Por default este diretório será criado depois de executarmos o seguinte comando.
npm installnpm installAgora vamos executar o frontend usando vite
npm run dev
VITE v4.4.11 ready in 669 ms
➜ Local: http://localhost:3000/
➜ Network: use --host to expose
➜ press h to show helpnpm run dev
VITE v4.4.11 ready in 669 ms
➜ Local: http://localhost:3000/
➜ Network: use --host to expose
➜ press h to show helpFEITO!! 🎉🎉 O frontend está rodando
👉 Abra seu browser e acesse a url http://localhost:3000 (ou o ip de sua máquina + a porta se estiver com --host) para solicitar o aplicativo frontend! Deveria estar rodando agora.

INFO
📱 O template D-Jà Vue tem como objetivo ser 'MOBILE FIRST', ou seja, funcionar bem em dispositivos movéis.
TIP
🌈 DICAS/TRUQUES: Como uma alternativa podemos usar o comando npm run dev -- --host que disponibilizará o aplicativo para sua rede, desta maneira você pode usar o endereço ip da sua máquina para acessar o aplicativo de qualquer máquina ou telefone celular dentro da mesma rede de WIFI.
TIP
você pode usar qualquer versão do Node JS, contudo, o ideal seria usar localmente a mesma versão do Node JS que será usada no ambiente de produção. Por este motivo, você pode escolher a versão na instalação. 💡 No arquivo frontend/Dockerfile é possível verificar a versão de produção (inclusive é possível alterar se necessário).
Outra coisa que você pode fazer neste momento:
- Usar
npm run formatpara executar um formatador de código (Prettier) e corrigir alguns possíveis erros na formatação de estilo - Usar
npm run lintpara executar o linter e verificar se algum código não está seguindo as regras. - Usar
npm run test:unitpara executar os testes do frontend - Usar
npm run buildque irá gerar o diretóriodistque contém html+css+js final a ser publicado.