Overview
Overview
Structure
Crowde is composed by multiple parts.
Firebase
Firebase is a Platform as a Service owned by Google. Crowde's entire infrastructure is based on Firebase. Firebase is used for authentication, storing data and files, running cloud functions and hosting the web-client. Learn more
Isofire
Isofire is a Library/Framework developed along side crowde. It is used to enable isomorphic code, that can be executed on client & server. Isofire provides an abstraction layer to firebase's firestore, storage and cloud functions. Currently only Firebase is supported. It's main benefit is, that it abstracts the firebase's client and server SDKs and provides an isomorphic api. Additionally it introduces some useful concepts like Jobs
.
Isofire is published on npm and is installed during npm install
. If you just want to get started with this project you don't have to worry about it. Isofire's sourcecode is managed in a private github repository. If you are interested in isofire and want to get involved let us know: isofire@crowde.net
Most of crowde's business logic is written using isofire and can be found in the /shared/isodata/
folder.
Web-Client
The main star of the show and the main entry point for all crowde development is the web-client found in /client/
. It's written in Angular (currently version 8.2). Learn more
Functions
Cloud Functions are used for server-side-logic. Most Operations in crowde are done directly from the web-client to firestore, but for some operations the web-client cannot be bothered or trusted. Cloud Functions are mainly used for those Operations, that are computing-intensive or require system-wide permissions. They are mostly triggered by changes in firestore and mostly respond by writing back into firestore. There are a few exceptions, like a function responding to a newly registered user in Firebase Auth. Functions in this project are defined in /functions/
. Learn more
Dev-Server
The Dev-Server can be found in /server/
and is only used to perform one-time operations or for developing and testing server-side logic like jobs. This is not needed for production. If you want to get into crowde's server-side development, contact team@crowde.net.
Documentation(-Website)
This Documentation is written in Markdown and can be found and edited in the /docs/
folder. The Documentation-Website presenting these docs is hosted on docs.crowde.net via netlify and developed using docusaurus. The Documentation Website can be found in the /docs-web/
folder. To start development on the Documentation Website run npm run docs
in the project's main directory.