Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/spica-engine/spica
Spica is a development engine to build fast & efficient applications.
https://github.com/spica-engine/spica
angular cloud-functions cms content-management-system database development-engine engine mongodb nodejs single-page-applications
Last synced: 3 months ago
JSON representation
Spica is a development engine to build fast & efficient applications.
- Host: GitHub
- URL: https://github.com/spica-engine/spica
- Owner: spica-engine
- License: agpl-3.0
- Created: 2019-06-28T07:46:58.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-10-17T14:16:56.000Z (4 months ago)
- Last Synced: 2024-10-19T13:46:44.296Z (4 months ago)
- Topics: angular, cloud-functions, cms, content-management-system, database, development-engine, engine, mongodb, nodejs, single-page-applications
- Language: TypeScript
- Homepage: http://spicaengine.com
- Size: 15.7 MB
- Stars: 97
- Watchers: 3
- Forks: 17
- Open Issues: 26
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
---------------------
# Spica - development engine [![Build status](https://badge.buildkite.com/231efc3a5086b0db36206b21f04ee665939ca9186505894312.svg?style=square)](https://buildkite.com/spica/default)
Spica is a full-fledged, free and open-source backend development platform. It aims to reduce all repetitive backend tasks and provide to fastest backend development process. Spica fulfills the needs of development among other things such as:
| Modules | Version | Tests | Used In Enterprise Project |
:-------------------- | :-------------------- | :--------------------: | :--------------------: |
| Data Modeling | Release | :white_check_mark: | :white_check_mark: |
| Realtime Database | Release | :white_check_mark: | :white_check_mark: |
| Cloud Functions | Release | :white_check_mark: |:white_check_mark: |
| Identity and Access Management | Release | :white_large_square: |:white_check_mark: |
| Storage (CDN) | Release | :white_check_mark: | :white_check_mark: |
| Dashboards | Release | :white_check_mark: | :white_check_mark: |
| **Features** | | | |
| Auto-Generated REST API | Release | :white_check_mark: | :white_check_mark: |
| WebHooks | Release | :white_check_mark: | :white_check_mark: |
| Custom OAuth & SAML | Beta | :white_check_mark: | :white_large_square: |
| GraphQL | Beta | :white_check_mark: | :white_large_square: |
| ACL Rules | Release | :white_check_mark: | :white_check_mark: |
| Asset System | Beta | :white_large_square: | :white_large_square: |
| Monitoring Tools | Beta | :white_check_mark: | :white_large_square: |
| Identity Activity Monitoring | Release | :white_check_mark: | :white_check_mark: |
| Instance Stats | Alpha | :white_check_mark: | :white_check_mark: |## Secondary Features
- Inline image editing
- Data history
- Data localization
- Event driven function triggers
- Prebuilt Open-Source Assets & Plugins
- Customizable back-office UI
- API-first approachSpica provides enterprise-grade backend features and customizable back-office UI for non-technical people.
## Quick Start
Important: To run serve command, you must have [Docker](https://www.docker.com/) and [NodeJs](https://nodejs.org/en/) installed on your development environment.
```bash
# Install the CLI
npm install -g @spica/cli# Start a fresh server
spica project start my-first-server
```## How It Works
We are trying to reduce development time for fast-paced projects and startups. Also we want to give a platform where the backend developers enjoy while developing robust projects. You can use Spica as a backend engine as well as a headless CMS.
To use Spica as a **backend engine**:
1. Prepare your data models in **Bucket Module**, REST API and GraphQL API will be generated automatically
2. Add rules to each bucket as an entry level security layer
3. Create custom policy for your project user roles
4. Apply your logic with **cloud functions**
5. Add **custom dashboards** for the business managersTo use Spica as a **Headless CMS**:
1. Prepare your data models in **Bucket Module**, REST API and GraphQL API will be generated automatically
2. Place your inputs and customize your bucket views with a few clicks
3. Create **identities** for your content editors
4. Add policies to your **identities** so your content editors can't reach to any technical part.
5. Add automations with **cloud functions**
6. Add **Webhooks** if you want to trigger any other 3rd party integration such as Slack, Zapier## RoadMap
We are currently in **public beta**. This means, you can use every feature and 99% of features are stable. We used Spica for a few enterprise-grade projects which are serving millions of requests in a day.
We can tell that the current roadmap:
1. Automate some settings with AI and reduce the complexity of the tool
2. Better monitoring tools
3. Adding new open-source assets such as Google Auth, Facebook Auth...
4. Adding new ready-to-use full-project starter kits such as Marketplace backend, social network backend .etc
5. New feature requests by our community are welcomed## Documentation
You can see full documentation on [spicaengine/docs](https://spicaengine.com/docs)
## Alternatively, you can check out the example which is already up and running
[Click here](https://spicaengine.com/) and you will see `Examples & Starters` section in our official web page.
## Community
Join us on [Slack][slack] or [Discord][discord], feel free to request to join our private `#development` channel if you're planning to contribute.
[slack]: https://join.slack.com/t/spica-engine/shared_invite/enQtNzYzMDE3NjQ2MTkyLTA3MTg4ZTViZGI0MThiYzdhNTYxMTQxNjcwYzRjZTJhZDE4YWFhOGU5NmUzMGZiYjlmOWY2NDg5OTUxZjM2NDM
[discord]: https://discord.gg/fBtzBEaxKJ## Docker Packs
| Package | Status | Description |
| :------: | :------: | :------: |
| [spicaengine/api](https://hub.docker.com/r/spicaengine/api) | ![Docker Image Version (latest semver)](https://img.shields.io/docker/v/spicaengine/api?sort=semver&label=version&color=blue) ![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/spicaengine/api?sort=semver&label=size&color=blue) ![Docker Pulls](https://img.shields.io/docker/pulls/spicaengine/api?label=downloads&color=blue) | API server of spica |
| [spicaengine/spica](https://hub.docker.com/r/spicaengine/spica) | ![Docker Image Version (latest semver)](https://img.shields.io/docker/v/spicaengine/spica?sort=semver&label=version&color=blue) ![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/spicaengine/spica?sort=semver&label=size&color=blue) ![Docker Pulls](https://img.shields.io/docker/pulls/spicaengine/spica?label=downloads&color=blue) | Dashboard for spica |
| [spicaengine/mongoreplicationcontroller](https://hub.docker.com/r/spicaengine/mongoreplicationcontroller) | ![Docker Image Version (latest semver)](https://img.shields.io/docker/v/spicaengine/mongoreplicationcontroller?sort=semver&label=version&color=blue) ![Docker Image Size (latest semver)](https://img.shields.io/docker/image-size/spicaengine/initcontainer?sort=semver&label=size&color=blue) ![Docker Pulls](https://img.shields.io/docker/pulls/spicaengine/initcontainer?label=downloads&color=blue) | Kubernetes controller for MongoDB replication |## Libraries
| Libraries | Status | Description | Languages
| :------: | :------: | :------: | :------: |
| `@spica/cli` | ![npm (scoped)](https://img.shields.io/npm/v/@spica/cli?label=version&color=blue) | CLI for controlling the API. | [JS](https://www.npmjs.com/package/@spica/cli) |
| `@spica-devkit/database` | ![npm (scoped)](https://img.shields.io/npm/v/@spica-devkit/database?label=version&color=blue) | Development package for interacting with the APIs database directly. | [JS](https://www.npmjs.com/package/@spica-devkit/database) |
| `@spica-devkit/bucket` | ![npm (scoped)](https://img.shields.io/npm/v/@spica-devkit/bucket?label=version&color=blue) | Development package for interacting with the Bucket APIs. | [JS](https://www.npmjs.com/package/@spica-devkit/bucket) |
| `@spica-devkit/storage` | ![npm (scoped)](https://img.shields.io/npm/v/@spica-devkit/storage?label=version&color=blue) | Development package for the Storage module. | [JS](https://www.npmjs.com/package/@spica-devkit/storage) |
| `@spica-devkit/identity` | ![npm (scoped)](https://img.shields.io/npm/v/@spica-devkit/identity?label=version&color=blue) | Development package for the Identity module. | [JS](https://www.npmjs.com/package/@spica-devkit/identity) |## Contributing
Thanks for your interest in contributing! Read up on our guidelines for [contributing](https://github.com/spica-engine/spica/blob/master/CONTRIBUTING.md).
## Changelog
[Learn about the latest improvements][changelog].
## Licence
Spica is an open-source software licensed under the [AGPL-3.0][licence].
[changelog]: https://github.com/spica-engine/spica/blob/master/CHANGELOG.md
[licence]: https://opensource.org/licenses/AGPL-3.0