Carros API é um projeto desenvolvido com Django, projetado para gerenciar informações relacionadas a carros e usuários. O sistema utiliza PostgreSQL como banco de dados, garantindo escalabilidade e desempenho, e está configurado para deploy com uWSGI.
O projeto é organizado da seguinte forma:
- manage.py: Script principal para gerenciar comandos administrativos do Django.
- db.sqlite3: Anteriormente usado como banco de dados, mas agora substituído por PostgreSQL.
- app: Diretório principal do projeto.
- accounts, cars: Aplicações Django específicas para gerenciar contas de usuários e informações sobre carros.
- requirements.txt: Dependências do projeto.
- carros_uwsgi.ini e uwsgi_params: Arquivos de configuração para deploy com uWSGI.
- media: Diretório para armazenar arquivos enviados pelo usuário.
- openai_api: Indica uma integração com a API da OpenAI.
Certifique-se de ter instalado:
- Python 3.8 ou superior
- PostgreSQL
- Virtualenv
- Git
- Crie um banco de dados no PostgreSQL:
CREATE DATABASE carros_db; CREATE USER carros_user WITH PASSWORD 'sua_senha_segura'; ALTER ROLE carros_user SET client_encoding TO 'utf8'; ALTER ROLE carros_user SET default_transaction_isolation TO 'read committed'; ALTER ROLE carros_user SET timezone TO 'UTC'; GRANT ALL PRIVILEGES ON DATABASE carros_db TO carros_user;
-
Clone o repositório:
git clone https://github.com/FelipeAngeli/carros.git cd carros
-
Crie e ative um ambiente virtual:
python3 -m venv venv source venv/bin/activate # No Windows: venv\Scripts\activate
-
Instale as dependências:
pip install -r requirements.txt
-
Configure as variáveis de ambiente no arquivo
.env
(ou método equivalente):DATABASE_NAME=carros_db DATABASE_USER=carros_user DATABASE_PASSWORD=sua_senha_segura DATABASE_HOST=localhost DATABASE_PORT=5432
-
Aplique as migrações ao banco de dados:
python manage.py makemigrations python manage.py migrate
-
Inicie o servidor de desenvolvimento:
python manage.py runserver
O servidor estará disponível em http://127.0.0.1:8000/
.
A API oferece os seguintes recursos:
- Usuários:
- Registro, autenticação e gerenciamento de contas.
- Carros:
- Listar, adicionar, atualizar e remover informações de carros.
GET /api/cars/
Resposta:
[
{
"id": 1,
"model": "Ford Mustang",
"year": 2020,
"price": 30000.00,
"owner": "user1@example.com"
}
]
Para executar os testes do projeto:
- Certifique-se de que o banco de dados de teste está configurado corretamente.
- Execute os testes:
python manage.py test
O projeto está configurado para ser implantado com uWSGI. Para iniciar o servidor uWSGI:
-
Certifique-se de que as dependências necessárias estão instaladas:
pip install uwsgi
-
Execute o servidor uWSGI:
uwsgi --ini carros_uwsgi.ini
O projeto estará disponível no endereço configurado no arquivo carros_uwsgi.ini
.
Contribuições são bem-vindas! Para contribuir:
- Faça um fork do repositório.
- Crie uma branch para sua feature:
git checkout -b minha-feature
- Faça commit das alterações.
- Envie um pull request.
Este projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.