Giter Site home page Giter Site logo

mobidian / equinoxproject Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bilalislam/equinoxproject

0.0 1.0 0.0 2.69 MB

Full ASP.NET Core 2.0 application with Monolithic as Anemic Domain model in DDD, CQRS and Event Sourcing

License: MIT License

C# 74.98% JavaScript 19.71% CSS 1.24% Shell 4.08%

equinoxproject's Introduction

Case Studies of Full Scalable & Flexible Architecture

How to use:

  • You will need Visual Studio 2017 (preview 15.3) and the .NET Core SDK (released in August 14, 2017).
  • The latest SDK and tools can be downloaded from https://dot.net/core.
  • Read the .NET Core 2.0 release announcement for more information.

Also you can run the Equinox Project in Visual Studio Code (Windows, Linux or MacOS).

To know more about how to setup your enviroment visit the Microsoft .NET Download Guide

How to setup via local:

  • open to the .vscode/launch.json and run web.dll or webapi.dll
  • you should be run these commands for dependencies of project
  • after that you should set localhost to the connectionstring and elasticsearchurl instead of db and elk
  • UI.Site/Program/ContentRoot(Directory.GetCurrentDirectory()) should be Directory.GetCurrentDirectory()+"/src/Equinox.UI.Site"
$ docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=testuser123!' -p 1433:1433 -d ninjafx/eq-database:latest
$ docker run -d -p 9200:9200 -p 5601:5601 nshou/elasticsearch-kibana 

How to setup via docker compose:

$ cd /deploy/docker-compose
$ docker-compose pull
$ docker-compose build
$ docker-compose up

For stop all containers

$ docker-compose down

And open links below as ;

  • Api -> localhost:8003/swagger
  • connect to DB -> localhost:1433 | user:sa | password:testuser123!
  • logging -> localhost:5601 (you need set index as logstash-* by @timestamp AND product by @timestamp (after any perform request and It will create index as product automatically))

How to setup via docker swarm:

$ cd /deploy/docker-swarm
$ sh setup.sh
$ docker service scale {service_name}={replica_num}

And open links below as ;

  • Api -> 192.168.99.100,101:8003/swagger

  • connect to DB -> 192.168.99.100,101:1433 | user:sa | password:testuser123!

  • portainer (container dashboad UI) -> 192.168.99.100,101:9000

    • choose an user(admin) and password(12345678) when entrance to portainer registeration page
    • and select to local for connect
    • and you can show all nodes from cluster if click go to cluster visualizer from Dashboard
  • logging -> 192.168.99.100,101:5601 (you need set index as logstash-* by @timestamp AND product by @timestamp (after any perform request and It will create index as product automatically))

  • PLEASE SHOULD BE RUNNING STATE OF DOCKER-MACHINES

  • if you got error about machine driver as "Unable to query docker version ..." then run command as below ;

docker-machine regenerate-certs swarm-1
docker-machine regenerate-certs swarm-2
docker-machine regenerate-certs swarm-3

For stop all containers

$ cd/deploy/docker-swarm
$ sh kill.sh

The Home Page of App

Equinox Project

The Screenshots of System Infrastructure

Equinox Project

Equinox Project

Equinox Project

Equinox Project

Technologies implemented:

  • ASP.NET Core 2.0 (with .NET Core)
  • ASP.NET MVC Core
  • ASP.NET WebApi Core
  • Entity Framework Core 2.0
  • .NET Core Native DI
  • AutoMapper
  • FluentValidator
  • MediatR
  • Swagger UI

Architecture:

  • Full architecture with responsibility separation concerns, SOLID and Clean Code
  • Domain Driven Design (Layers and Domain Model Pattern)
  • Domain Events
  • Domain Notification
  • CQRS (Imediate Consistency)
  • Event Sourcing
  • Unit of Work
  • Repository and Generic Repository

Deployment:

  • Docker Compose
  • Docker Swarm Mode on VMBox (as virtualbox etc...)

About:

The Equinox Project was developed by [Bilal İslam] under the MIT license.

equinoxproject's People

Contributors

eduardopires avatar bilalislam avatar albertomonteiro avatar douglasoliveirabh avatar edumartins7 avatar thiagolunardi avatar andreluizsecco avatar

Watchers

James Cloos 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.