Giter Site home page Giter Site logo

davideggenberger / crispycollab Goto Github PK

View Code? Open in Web Editor NEW
36.0 1.0 2.0 2.1 MB

Monolithic SaaS solution built with ASP.NET Core, Blazor and EF Core. CrispyCollab offers a text message collaboration tool (SignalR) for teams. Subscriptions can be bought via Stripe.

License: MIT License

C# 82.09% HTML 11.58% CSS 4.72% JavaScript 0.36% Dockerfile 1.26%
software-as-a-service blazor efcore aspnetcore reference-application azure csharp stripe multi-tenant asp-net-core-identity

crispycollab's Introduction

CrispyCollab Build and Test

CrispyCollab

This repository builds upon ModularMonolith.SaaS.Template. CrispyCollab is a reference application for building monolithic SaaS solutions with ASP.NET Core, Blazor and EF Core. CrispyCollab features:

  • Subscription-based billing (Stripe Checkout)
  • Multi-tenancy
  • Tenant wide operations (sending chat messages)
  • Admin Section (e.g. inviting users)
  • Domain Driven Design
  • CQRS

Architecture

Because this repo builts upon the ModularMonolith.SaaS.Template repo please visit it for information about the architecture.

Running and Using CrispyCollab

TailwindCSS

If you want to start building with the template and adding your own tailwind classes you must run the following commands from the Source directory:

npm install -D tailwindcss
npx tailwindcss init
npx tailwindcss -i ./TailwindSource.css -o ./Web/Server/wwwroot/dist/output.css --watch

Infrastructure

The most convient way to run an SQL Server instance is through Docker. To do so run this command from the root folder (where CrispyCollab.sln file is located):

docker-compose -f docker-compose.infrastructure.yml up

The SQL Server must be setup before the template can be successfully run. Because the EF Core migrations were already created they only must be applied to the database. Open the Package Manager Console inside Visual Studio and execute the following two commands:

update-database -context TenantIdentityDbContext
update-database -context SubscriptionsDbContext

These commands will create two seperate shemes with their respective tables on the same database (the configuration string is read from Web/Server/appsettings.Development.json).

Web

Before running the Web.Server project (its the project to be started because it also serves the Blazor WebAssembly client) the configuration values must be set. It is highly recommended to keep the following secrets out of source control. For local development right click on the Web.Server project and then click on manage user secrets. The opened secrets.json file should then updated to hold the following configuration (the values can be retrieved by following the respective links):

{
  ,
  "EFCoreConfiguration": {
    "SQLServerConnectionString_Dev": "Server=127.0.0.1,1433;Database=ModularMonolith;User Id=SA;Password=YourSTRONG!Passw0rd;Encrypt=False;"
  },
  "SubscriptionsConfiguration": {
    "StripeProfessionalPlanId": "_"
  },
  "TenantIdentityConfiguration": {
    "GoogleClientId": "_",
    "GoogleClientSecret": "_",
    "MicrosoftClientId": "_",
    "MicrosoftClientSecret": "_",
    "LinkedinClientId": "_",
    "LinkedinClientSecret": "_"
  }
}

With the configuration set, the Web.Server project can be started through Visual Studio.

crispycollab's People

Contributors

davideggenberger avatar

Stargazers

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