2021-10-30 13:32:30 +03:00
# Anticrm Platform
2023-07-06 08:55:22 +03:00
Anticrm Platform is a framework that help building business applications (such as CRM) fast.
Current exemplary applications include Chat, Issue Management(Tracker), and Applicant Tracking System, Boards, Leads, HR.
2021-10-30 13:32:30 +03:00
## Installation
2023-07-06 08:55:22 +03:00
You need Microsoft's [rush ](https://rushjs.io ) to install application.
2021-10-30 13:32:30 +03:00
2023-07-06 08:55:22 +03:00
Install [rush ](https://rushjs.io ) with `$ npm install -g @microsoft/rush` command and run `$ rush install` from the repository root, followed by `$ rush build` .
2021-11-22 14:17:10 +03:00
2023-07-06 08:55:22 +03:00
## Build and run
Development environment setup require Docker to be installed on system.
Supported both amd64 and armv8(arm64) containers on Linux and Macos.
2021-11-22 14:17:10 +03:00
```bash
2023-01-24 16:36:45 +03:00
cd ./dev/
2021-11-22 14:17:10 +03:00
rush build # Will build all required packages.
rush bundle # Will prepare bundles.
2023-07-06 08:55:22 +03:00
rush docker:build # Will build docker containers for all applications in local docker environment.
2021-11-22 14:17:10 +03:00
docker-compose up -d --force-recreate # Will setup all containers
```
By default docker volumes `dev_db` `dev_elastic` `dev_files` will be created for mongo/elastic/minio instances.
Before we could start we need to create workspace/account and associate it with workspace.
```bash
2023-01-24 16:36:45 +03:00
cd ./tool
2021-11-22 14:17:10 +03:00
rushx run-local create-workspace ws1 -o DevWorkspace # Create workspace
rushx run-local create-account user1 -p 1234 -f John -l Appleseed # Create account
2023-04-25 10:34:10 +03:00
rushx run-local configure sanity-ws --list --enable '*' # Enable all modules, then if they are not yet intended to be used by wide audience.
rushx run-local assign-workspace user1 ws1 # Assign workspace to user
2023-07-06 08:55:22 +03:00
rushx run-local confirm-email user1 # To allow create of more test workspaces.
2023-04-25 10:34:10 +03:00
2021-11-22 14:17:10 +03:00
```
2023-04-25 10:34:10 +03:00
Following URL http://localhost:8087 will lead us to app in production mode.
2023-01-24 16:36:45 +03:00
2023-07-06 08:55:22 +03:00
Limitations:
- Location installation do not allow to send emails, so password recovery and notification to email functionality is not working.
- Telegram/Gmail/Content integrations are available only as docker container and they are build from private repository sources, but could be used with platform.
2023-01-24 16:36:45 +03:00
## Run in development mode
2023-07-06 08:55:22 +03:00
Development mode allow to live reload and smooth development process.
```bash
2023-01-24 16:36:45 +03:00
cd dev/prod
rushx dev-server
```
2023-04-25 10:34:10 +03:00
Then go to http://localhost:8080
2022-04-04 14:11:37 +03:00
## Update project structure and database
If projects structure is updated it might be needed to relink and rebuild projects.
```bash
rush update
rush build
```
It also might be required to upgrade running database.
2023-04-25 10:34:10 +03:00
2022-04-04 14:11:37 +03:00
```bash
cd ./dev/tool
rushx upgrade
```
2023-04-25 21:31:27 +03:00
In cases when project doesn't build for any logical reason try:
```bash
2023-05-15 18:51:27 +03:00
rush update
2023-04-25 21:31:27 +03:00
rush build --clean
```
2022-04-04 14:11:37 +03:00
## Tests
### Unit tests
```bash
2023-07-06 08:55:22 +03:00
rush test # To execute all tests
rushx test # For individual test execution inside a package directory
2022-04-04 14:11:37 +03:00
```
### UI tests
```bash
cd ./tests
rush build
rush bundle
rush docker:build
## creates test docker containers and setups test database
./prepare.sh
2023-04-25 10:34:10 +03:00
## runs UI tests
2022-04-04 14:11:37 +03:00
rushx uitest
2022-09-21 11:08:25 +03:00
```
2023-07-06 08:55:22 +03:00
To execute tests in development environment, please do following steps:
```bash
cd ./tests
./create-local.sh ## use ./restore-local.sh to just restore sanity workspace to predefined initial state.
cd ./sanity
rushx dev-uitest # To execute all tests against the development environment.
rushx dev-debug -g 'pattern' # To execute tests in debug mode with only test matching pattern.
```
2022-09-21 11:08:25 +03:00
## Package publishing
2023-01-04 20:58:54 +03:00
```bash
2023-07-06 08:55:22 +03:00
node ./common/scripts/bump.js -p projectName
2023-01-04 20:58:54 +03:00
```
2023-05-15 18:51:27 +03:00
## Additional testing
This project is tested with BrowserStack.