- ⚡ Access Control : Fine-grained access control even at database, table & column level.
### App Store for workflow automations :
### App Store for workflow automations
- ⚡ Chat : Microsoft Teams, Slack, Discord, Mattermost
- ⚡ Email : SMTP, SES, Mailchimp
- ⚡ SMS : Twilio
- ⚡ Whatsapp
- ⚡ Any 3rd Party APIs
### Programmatic API access via :
### Programmatic API access via
- ⚡ REST APIs (Swagger)
- ⚡ GraphQL APIs.
- ⚡ Includes JWT Authentication & Social Auth
@ -51,3 +50,38 @@ Also NocoDB's app store allows you to build business workflows on views with com
|---------|-----------|--------|
| Create new project | NC_DB | NC_DB |
| Create new project with external DB | NC_DB | External database |
## Project Structures
We use ``Lerna`` to manage multi-packages. We have the following [packages](https://github.com/nocodb/nocodb/tree/master/packages).
- ``packages/nc-cli`` : A CLI to create NocoDB app.
- ``packages/nc-common``: A common library package used internally.
- ``packages/nc-gui``: NocoDB Frontend.
- ``packages/nc-lib-gui``: The build version of ``nc-gui`` which will be used in ``packages/nocodb``.
- ``packages/nc-migrator-archived``: SQL based schema migrations or evolutions.
- ``packages/nc-plugin``: Plugin template.
- ``packages/noco-blog``: NocoDB Blog which will be auto-released to [nocodb/noco-blog](https://github.com/nocodb/noco-blog).
- ``packages/noco-book``: NocoDB Handbook which will be auto-released to [nocodb/noco-book](https://github.com/nocodb/noco-book).
- ``packages/noco-docs``: NocoDB Documentation which will be auto-released to [nocodb/noco-docs](https://github.com/nocodb/noco-docs).
- ``packages/nocodb``: NocoDB Backend, hosted in [NPM](https://www.npmjs.com/package/nocodb).
## Contributions
All contributions are welcome. NocoDB projects can be found in the [NocoDB](https://github.com/nocodb) Github organization. Our core uses [The AGPL V3 license](https://github.com/nocodb/nocodb/blob/master/LICENSE) and all contributors should read the [contribution guides](https://github.com/nocodb/nocodb/tree/master/contribute) before making your first contribution.
You can also share your thoughts and discuss with our community members via [discord](https://discord.gg/5RgZmkW) or [Github Discussion](https://github.com/nocodb/nocodb/discussions). We also share our [Immediate Roadmap](https://github.com/nocodb/nocodb/projects/1) and all opinions are welcome.
## Support
If you have any issues or questions, you can reach out for help in our [discord](https://discord.gg/5RgZmkW).
@ -62,48 +62,38 @@ Simple installation - takes about three minutes!
</code-block>
</code-group>
<br>
<br>
## Local Setup
If you want to modify the source code, there are two scenarios. You can either
- change backend only or
- change both frontend and backend separately
If you want to modify the source code,
Even though the package ``nocodb/packages/nocodb`` is a backend project, you can still visit the dashboard as it includes ``nc-lib-gui``.
- Start the backend locally
```bash
cd packages/nocodb
npm install
npm run watch:run
# open localhost:8080/dashboard in browser
```
As ``nc-lib-gui`` is hosted in npm registry, for local development on frontend part, you should run ``nc-gui`` separately.
- Start the frontend locally
```bash
cd packages/nc-gui
npm install
npm run dev
# open localhost:3000/dashboard in browser
```
If you wish to combine the frontend and backend together in your local devlopment environment, you may use ``packages/nc-lib-gui`` as a local depenedency by updating the ``packages/nocodb/package.json`` to
- Open ``localhost:3000/dashboard`` in browser
```json
"nc-lib-gui": "file:../nc-lib-gui"
```
In this case, whenever there is any changes made in frontend, you need to run ``npm run build:copy`` under ``packages/nc-gui/``.
<alert>
nocodb/packages/nocodb includes nc-lib-gui which is the built version of nc-gui hosted in npm registry. <br>
You can visit localhost:8000/dashboard in browser after starting the backend locally if you just want to modify the backend only.
</alert>
## Production Setup
NocoDB requires a database to store metadata of spreadsheets views and external databases.
And connection params for this database can be specified in `NC_DB` environment variable.