Giter Club home page Giter Club logo

e-arq-acme-coorp's Introduction

e-Arq Acme Coorp

Projeto prático para o processo seletivo para Acme Coorp usando a especificação do e-Arq como base. Usando core do projeto conceito Projeto MEAN (MongoDB, Express, AngularJS e NodeJS) para reutilização de soluções coesas. E buscando atender as restrições do teste em si: DESAFIO Acme Coorp.

Objetivos Principais Conceitos:

  • Criar uma sistema usando as tecnologias: MongoDB, Express, AngularJS, and Node.js;
  • Usar um ambiente Plataform as a Service - PaaS;
  • Jenkins - Integração Contínua;
  • Projetar Sistemas usando Arquiterura Microservices;
  • Implantação Contínua (Continuous Deployment);

Adquirir Proficiências em Habilidades

  1. Experiência em sistemas de banco de dados NoSQL (Cassandra, MongoDB, etc.);

    Experiência em sistemas de banco de dados NoSQL

  2. Experiência em sistemas usando tecnologia não bloqueante Node.js;

    Node.js

  3. Experiência em sistemas usando Express;

    Experiência em sistemas usando ExpressJs

  4. Experiência em sistemas usando AngularJS;

    Experiência em sistemas usando AngularJs

  5. Experiência em sistemas de containerização (e.g. Docker);

    Experiência em sistemas de containerização Docker

  6. Experiência em sistemas Linux e shell scripting;

    Experiência em sistemas Linux e shell scripting

  7. Experiência em sistemas Amazon Web Services - AWS;

    Experiência em sistemas Amazon Web Services - AWS

  8. Experiência em projetos utilizando micro serviços (Microservices) e computação distribuída;

Como usar:

Considerando que temos uma instância do Amazon Machine Image - AMI iniciada: aqui AWS EC2. Execute os comandos abaixo:

  1. Clonar o projeto: git clone https://github.com/pssilva/e-arq-acme-coorp.git;
  2. Acessar a pasta: cd e-arq-acme-coorp;
  3. Instalar as dependencias: mpn install;
  4. Instalar as dependencias: bower install;
  5. Antes de iniciar o servidor você deve definir as seguintes variáveis de ambiente:
# será usado no sistema: process.env.SESSION_SECRET
export SESSION_SECRET=?????? 
# será usado no sistema: process.env.NODE_ENV
export NODE_ENV=development 
  1. Iniciar o serviço do MongoDB: brew services start mongodb;
  2. Start Server: grunt;
    Caso queira rodar os servidores individualmente:
    1) Start Server Admin: node app/admin/server/config/server.js;
    2) Start Server Avaliação: node app/avaliacao/server/config/server.js;
    3) Start Server Restful: node app/core/server/config/server_api_restful.js;
  3. Realizar o load dos dados no Banco de dados:
    1) http://localhost:3034/suporte/mongosse/;
    2) http://localhost:3034/suporte/mongosse/aluguel;
    3) http://localhost:3034/suporte/mongosse/avaliacao;
  4. Acessar o sistema Admin: http://localhost:3034;
  5. Acessar o sistema Avaliações: http://localhost:3045;
  6. Acessar o sistema RESTful: http://localhost:3033;

NOTA: MEAN CRUD - para criar um CRUD automaticamente use o comando:
gradle -q createMeanCRUD -PmodelName=articles -PfeatureName=example

Estrutura das Pastas do Projeto

Aqui assumimos a estrutura de pasta Vertical. Você pode gerar automaricamente com o comando:

npm install -g generator-mean-app-crud
npm install -g yo
yo mean-app:createApp MyApp --feature-name='MyFeature' --structure-vertical

NOTA: Mais detalhes em generator-mean-app-crud.
Com isso irá gerar um projeto com uma estrutura conforme figura abaixo:

Onde entendemos que a pasta feature representa a separação literal das funcionalidades. Exemplo, pretendo organizar authentication e authorization com o OAuth2.0 separadamente como um plugin usando a estrutura da pasta feature.

Temas

O projeto será adaptado para os seguintes temas (themes):

  1. AdminLTE;

Acessar o sistema: http://localhost:3000/admin-lte.ejs ou http://localhost:9001/admin-lte.ejs "AdminLTE Presentation"

  1. Gentelella Allela;

Acessar o sistema: http://localhost:3000/gentelella.ejs ou http://localhost:9001/gentelella.ejs Gentelella Bootstrap Admin Template

Referência

[Conarq, Conselho Nacional de Arquivos: 2011], Copyright © 2011 Conselho Nacional de Arquivos, e-ARQ Brasil
[Caio Ribeiro Pereira: 2016], Apress, Building APIs with Node.js
[Valentin Bojinov: 2015], Copyright © 2015 Packt Publishing, RESTful Web API Design with Node.js: Design and implement comprehensive RESTful solutions in Node.js
[Jurie-Jan Botha: 2015], Copyright © 2015 Packt Publishing, Grunt Cookbook: Over 80 hands-on recipes for streamlining development, management, and deployment with Grunt
[Valeri Karpov, Diego Netto: 2015], John Wiley & Sons, Inc., Professional AngularJS
[Amos Q. Haviv: 2014], Packt Publishing, MEAN Web Development: Master real-time web application development using a mean combination of MongoDB, Express, AngularJS, and Node.js.
[Sébastien Goasguen: 2016], O’Reilly Media, Inc., Docker Cookbook: SOLUTIONS AND EXAMPLES FOR BUILDING DISTRIBUTED APPLICATIONS.
[Alan Mark Berg: 2015], Packt Publishing, Jenkins Continuous Integration Cookbook, Second Edition
[Christian Posta: 2016], O’Reilly Media, Inc., Microservices for Java Developers: A Hands-on Introduction to Frameworks and Containers
[Markus Eisele: 2016], O’Reilly Media, Inc., Modern Java EE Design Patterns: Building Scalable Architecture for Sustainable Enterprise Development.

e-arq-acme-coorp's People

Contributors

pssilva 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.