Git Product home page Git Product logo

collectively.api's Introduction

Collectively


Branch Build status
master master branch build status
develop develop branch build status

Let's go for the better, Collectively​​.

Collectively is an open platform to enhance communication between counties and its residents​. It's made as a fully open source & cross-platform solution by Noordwind.

Find out more at becollective.ly

Collectively.Api

The Collectively.Api acts as a gateway to the whole Collectively system that was built as a set of distributed microservices following the CQRS pattern. This is a RESTful API that can be accessed by any type of application or tool that can handle the HTTP requests.

The API itself does not know anything about the underlying microservices and has just a dependency to the RabbitMQ service bus in order to publish the commands from the incoming user requests and the Storage in order to fetch the data.

If you would like to find out more about the available endpoints, please navigate to the API documentation.

Quick start

Docker way

Collectively is built as a set of microservices, therefore the easiest way is to run the whole system using the docker-compose.

Clone the Collectively.Docker repository and run the start.sh script:

git clone https://github.com/noordwind/Collectively.Docker
./start.sh

For the list of available services and their endpoints click here.

Classic way

In order to run the Collectively.Api you need to have installed:

Clone the repository and start the application via dotnet run --no-restore command:

git clone https://github.com/noordwind/Collectively.Api
cd Collectively.Api/Collectively.Api
dotnet restore --source https://api.nuget.org/v3/index.json --source https://www.myget.org/F/collectively/api/v3/index.json --no-cache
dotnet run --no-restore --urls "http://*:5000"

Once executed, you shall be able to access the API at http://localhost:5000

Please note that the following solution will only run the HTTP API which is merely one of the many parts required to run properly the whole Collectively system.

Configuration

Please edit the appsettings.json file in order to use the custom application settings. To configure the docker environment update the dockerfile - if you would like to change the exposed port, you need to also update it's value that can be found within Program.cs. For the local testing purposes the .local or .docker configuration files are being used (for both appsettings and dockerfile), so feel free to create or edit them.

Tech stack

  • .NET Core - an open source & cross-platform framework for building applications using C# language.
  • Nancy - an open source framework for building HTTP API.
  • RawRabbit - an open source library for integration with RabbitMQ service bus.

Solution structure

  • Collectively.Api - core and executable project via dotnet run --no-restore command.
  • Collectively.Api.Tests - unit & integration tests executable via dotnet test --no-restore command.
  • Collectively.Api.Tests.EndToEnd - End-to-End tests executable via dotnet test --no-restore command.

collectively.api's People

Contributors

devnoordwind avatar gpasnik avatar spetz 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.