Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kauanrodrigues01/django-s3-crud

Projeto desenvolvido com Django, oferecendo uma galeria de imagens completa. Permite aos usuários buscar, adicionar, editar, deletar e favoritar imagens. Inclui autenticação de usuário e um CRUD completo utilizando o ORM do Django para gerenciar imagens e perfis.
https://github.com/kauanrodrigues01/django-s3-crud

django django-application django-orm-crud django-project

Last synced: 6 days ago
JSON representation

Projeto desenvolvido com Django, oferecendo uma galeria de imagens completa. Permite aos usuários buscar, adicionar, editar, deletar e favoritar imagens. Inclui autenticação de usuário e um CRUD completo utilizando o ORM do Django para gerenciar imagens e perfis.

Awesome Lists containing this project

README

        

# Alura Space 🌌

AluraSpace é uma aplicação Django desenvolvida para gerenciar e compartilhar imagens. É uma galeria de imagens que permite aos usuários fazer upload, editar, buscar, favoritar e curtir imagens. Além disso, os usuários podem gerenciar seus perfis, visualizar suas imagens e interagir com o conteúdo através de likes e favoritos.

## Funcionalidades Implementadas

- **Autenticação de Usuários**:
- Cadastro, login e logout.
- Edição de perfil com atualização de informações e senha.

- **Gestão de Imagens**:
- Upload de novas imagens com suporte a arquivos.
- Edição e exclusão de imagens.
- Visualização de imagens em detalhes.
- Favoritar e desfavoritar imagens.
- Curtir e descurtir imagens.

- **Busca e Filtros**:
- Busca de imagens por nome, descrição e categoria.
- Filtragem de imagens por categoria e favoritas.

- **Perfil do Usuário**:
- Exibição e gerenciamento das imagens do usuário.
- Visualização de imagens favoritas.

## Tecnologias Utilizadas

- Django
- HTML5
- CSS3
- JavaScript

## Instalação

Siga estas etapas para configurar o projeto localmente:

1. **Clone o repositório**

```bash
git clone https://github.com/usuario/nome-do-repositorio.git
```

2. **Navegue até o diretório do projeto**

```bash
cd nome-do-repositorio
```

3. **Crie e ative um ambiente virtual**

Para Windows:

```bash
python -m venv venv
.\venv\Scripts\activate
```

Para macOS e Linux:

```bash
python3 -m venv venv
source venv/bin/activate
```

4. **Instale as dependências**

```bash
pip install -r requirements.txt
```

5. **Configure as variáveis de ambiente**

- **Instale o `python-dotenv`** se ele não tiver sido instalado do arquivo `requirements.txt`, para gerenciar variáveis de ambiente a partir de um arquivo `.env`:

```bash
pip install python-dotenv
```

- **Crie um arquivo `.env` na raiz do projeto e adicione as seguintes variáveis** (ajuste os valores conforme necessário):

```dotenv
DEBUG=True
SECRET_KEY=sua_chave_secreta
DATABASE_URL=postgres://usuario:senha@localhost:5432/nome_do_banco
```

- **Certifique-se de que o arquivo `.env` está listado no `.gitignore`** para não ser commitado no repositório.

Exemplo de entrada no `.gitignore`:
```gitignore
.env
```

- **Para carregar variáveis do `.env` em seu projeto Django**, adicione o seguinte código no início do seu `settings.py`:

```python
from dotenv import load_dotenv
import os

load_dotenv()

SECRET_KEY = str(os.getenv('SECRET_KEY'))
DEBUG = str(os.getenv('DEBUG'))
```

6. **Gerar uma Nova `SECRET_KEY`**

Para gerar uma nova `SECRET_KEY`, execute o seguinte comando no terminal:

```bash
python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
```

Copie a saída e adicione ao arquivo `.env` como o valor para `SECRET_KEY`.

7. **Execute as migrações do banco de dados**

```bash
python manage.py makemigrations
```

```bash
python manage.py migrate
```

8. **Crie um superusuário (opcional, para acessar o painel de administração)**

```bash
python manage.py createsuperuser
```

9. **Inicie o servidor de desenvolvimento**

```bash
python manage.py runserver
```

O projeto estará disponível em `http://127.0.0.1:8000/`.