https://github.com/isaque-s-0liveira/super-portifolio-python
Foi desenvolvido uma API robusta para gerenciamento de perfis e projetos em um super portfólio. A aplicação contará com autenticação via JWT e permitirá a criação, leitura, atualização e remoção (CRUD) de perfis, projetos, certificados e instituições certificadoras.
https://github.com/isaque-s-0liveira/super-portifolio-python
css3 django django-rest-framework docker html5 mysql python simple-jwt
Last synced: 4 months ago
JSON representation
Foi desenvolvido uma API robusta para gerenciamento de perfis e projetos em um super portfólio. A aplicação contará com autenticação via JWT e permitirá a criação, leitura, atualização e remoção (CRUD) de perfis, projetos, certificados e instituições certificadoras.
- Host: GitHub
- URL: https://github.com/isaque-s-0liveira/super-portifolio-python
- Owner: isaque-S-0liveira
- Created: 2023-12-06T23:54:32.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-09-09T19:24:22.000Z (almost 2 years ago)
- Last Synced: 2025-08-07T20:51:16.323Z (12 months ago)
- Topics: css3, django, django-rest-framework, docker, html5, mysql, python, simple-jwt
- Language: Python
- Homepage:
- Size: 21.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Super portifolio python
## Contexto do Projeto
O foco principal deste projeto, com base nos ensinamentos da **Trybe**, é praticar e consolidar os conhecimentos em **Django** e **Django Rest Framework (DRF)**, desenvolvendo uma API robusta para gerenciamento de perfis e projetos em um super portfólio. A aplicação contará com autenticação via **JWT** e permitirá a criação, leitura, atualização e remoção (CRUD) de perfis, projetos, certificados e instituições certificadoras.
O que é a Trybe?🤔
A Trybe é uma escola de desenvolvimento web genuinamente comprometida com o sucesso profissional de seus estudantes. Com o Modelo de Sucesso Compartilhado (MSC) oferecido pela Trybe Fintech, uma instituição financeira autorizada pelo Banco Central do Brasil, os alunos têm a opção de pagar apenas quando estiverem trabalhando.
Neste projeto, a API permite que usuários cadastrem seus perfis e projetos, além de armazenar suas certificações e as instituições certificadoras. Com a implementação da arquitetura **CRUD** e a utilização de **ViewSets** e **Serializers**, será possível criar rotas e endpoints RESTful eficientes, com suporte a entidades aninhadas, ou seja, será possível gerenciar certificados e instituições certificadoras de forma integrada.
### Funcionalidades Principais:
1. **Autenticação JWT**:
- O projeto implementa autenticação utilizando o **Simple JWT**, garantindo que apenas usuários autenticados possam acessar rotas sensíveis.
- A autenticação é exigida para criar, atualizar ou deletar perfis e projetos, enquanto a leitura é acessível publicamente.
2. **CRUD de Perfis e Projetos**:
- Os usuários poderão criar e gerenciar seus perfis e projetos. Cada perfil poderá ser associado a múltiplos projetos, permitindo a construção de um portfólio completo.
- O CRUD de perfis permite listar, criar, editar e excluir perfis e projetos por meio de endpoints RESTful.
3. **Perfis Customizados**:
- A visualização dos perfis será renderizada diretamente em templates HTML para permitir uma navegação amigável e informativa.
- O método `GET` para exibir perfis é aberto ao público, sem necessidade de autenticação, enquanto as demais operações (POST, PATCH, DELETE) requerem login.
4. **CRUD Inline de Certificados e Instituições**:
- É possível criar e gerenciar certificados e suas respectivas instituições certificadoras em uma única requisição, tornando a interface mais eficiente e intuitiva.
- Através de serializers aninhados, será possível exibir todas as certificações e suas instituições de forma estruturada.
5. **Exibição de Perfil Completo**:
- A página de perfil exibe todos os detalhes de um usuário, incluindo certificados, instituições certificadoras e projetos associados, permitindo uma visão completa do portfólio do usuário.
### Habilidades Desenvolvidas:
- Utilização do **Django REST Framework (DRF)** para criar uma API com entidades aninhadas.
- Implementação de autenticação baseada em **JWT** com o pacote **Simple JWT**.
- Criação de **ViewSets** customizados para fornecer permissões diferenciadas para métodos HTTP específicos.
- Desenvolvimento de **CRUD** inline, permitindo a manipulação de múltiplas entidades relacionadas em uma única requisição.
- Renderização de templates HTML diretamente do backend para exibição de perfis e projetos de forma amigável ao usuário.
---
## Tecnologias Usadas
- [Python](https://www.python.org/) - Linguagem de programação utilizada para desenvolver o backend da aplicação.
- [Django](https://www.djangoproject.com/) - Framework web utilizado para estruturar a aplicação server-side.
- [Django Rest Framework (DRF)](https://www.django-rest-framework.org/) - Extensão do Django utilizada para criar APIs RESTful.
- [Simple JWT](https://django-rest-framework-simplejwt.readthedocs.io/en/latest/) - Biblioteca para autenticação baseada em tokens JWT no Django Rest Framework.
- [MySQL](https://www.mysql.com/) - Banco de dados relacional utilizado para armazenar as informações de perfis, projetos, certificados e instituições.
- [HTML5](https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/HTML5) - Linguagem de marcação utilizada para a construção das páginas web.
- [CSS3](https://developer.mozilla.org/en-US/docs/Web/CSS) - Utilizado para estilização das páginas HTML e garantir uma interface visual atraente.
- [Docker](https://www.docker.com/) - Utilizado para containerização da aplicação, facilitando o gerenciamento de ambientes de desenvolvimento e produção.