Coder Social home page Coder Social logo

mylib's Introduction

ML

Django ReactJS PostgreSQL

mylib

Um projeto de exemplo feito em Django, ReactJS & PostgreSQL

Dependências

Demo

⚠️ O design da interface foi pensado para o paradigma mobile-first, portanto, nas versões iniciais do sistema será mais adequado testá-lo em telas menores

Planejamento

Com o pensamento de que linguagens e frameworks são apenas ferramentas para o desenvolvimento de soluções, antes de por a mão no código foram esquematizados modelos UML (docs/UML.pdf) para realizar o planejamento do que seria efetuado. Os modelos criados foram o Diagrama de Casos de Uso e Diagrama de Modelagem Relacional, devido ao nível de complexidade do projeto e a quantidade de programadores (um) não se viu necessidade de outros modelos.

Após compreender o problema e projetar uma solução com UML o próximo passo para prototipação era o Design UX/UI. Como ferramenta de desenvolvimento foi escolhido o Figma, por ser extremamente completo, ter foco colaborativo e apresentar baixa complexidade de uso foi uma escolha ideal para o projeto. Uma visualização completa do que foi planejado para essa etapa do projeto pode ser encontrada clicando aqui.

Como tecnologias para o projeto foram utilizados Django, ReactJS & PostgreSQL. Todas essas tecnologias foram requisitos obrigatórios, mas vale a reflexão sobre o que pode ser levado em consideração para se escolher tais ferramentas.

Considerando o mercado brasileiro de tecnologia temos um cenário onde progamadores experientes são levados para fora por empresas de outros países e novos programadores precisam ser ensinados, o que é apenas uma pequena representação da volaticidade do mercado de programação em si. Dito isso, quem contrata desenvolvedores precisa estar preparado para a saída e entrada de profissionais em um períodos inesperados, escolher Python e JavaScript como linguagens principais da empresa é escolher uma curva de aprendizado acessível para novos desenvolvedores sem perder a confiabilidade de tecnologias amplamente utilizadas mundo a fora. Equanto que a escolha dos Framworks Django e ReactJS, juntamente com PostgreSQL garantem escalabilidade a qualquer projeto.
A versatilidade e agilidade promovida por escolhas como essa fazem total diferença na produtividade dos times de desenvolvimento.

Requisitos

ℹ️ Alguns dos requisitos foram alterados e alguns dados não solcitados foram adicionados ao projeto final.

Estruturais

  • Desenvolvimento fullstack - Django;
  • Banco de dados e modelagem relacional - PostgreSQL;
  • Versionamento de código - Git;

Dados

  • Cadastro de Livros contendo os seguintes campos:
    (:warning: somente por api na versão atual):
    • Nome;
    • Categoria;
    • Capa do livro (imagem);
    • Autor;
    • Data de publicação;
    • Quantidade de páginas;
  • Listar os livros cadastrados;
  • Editar um livro existente
    (:warning: somente por api na versão atual);
  • Deletar um livro
    (:warning: somente por api na versão atual);

Regras

  • Não é permitido adicionar livros com o mesmo nome;
  • A Data de publicação dos livros deve está compreendida entre os anos de 1500 á 2022;
  • O usuário precisa ser alertado através de notificações caso esteja infringindo alguma regra durante o cadastro ou atualização;
    (:warning: somente por api na versão atual)

Outras

  • Listar livros por categoria;
    (:warning: somente por api na versão atual)
  • Listar livros por data de publicação;
  • Criação de um front-end desacoplado do projeto (React ou Vue);
    (:warning: somente por api na versão atual)
  • Conteinerização (Docker-compose);

Setup

Após clonar o repositório

Entrar na pasta do projeto

cd mylib

Entrar na pasta do código frontend

cd source/frontend

Instalar módulos

npm install

Voltar para a pasta principal

cd ../..

Iniciar docker

docker-compose up -d

Acionar migrations

docker-compose exec api /usr/local/bin/python manage.py migrate 

Primeiro Acesso

Durante o primeiro acesso não haverão livros, autores ou categorias cadastradas. Logo deve-se cadastrar primeiramente pelo menos um (1) autor, pelo menos uma (1) categoria e depois então se podem cadastrar livros.

Por padrão a url relacionada a cada setor da aplicação é:

Como algumas das funções do frontend não estão finalizadas o cadastro pode ser feito diretamente na api, que quando acessada pelo navegador possui uma interface padrão criada pelo framework.

mylib's People

Contributors

rob-ec avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.