Huly — All-in-One Project Management Platform (alternative to Linear, Jira, Slack, Notion, Motion)
Go to file
Kristina a246b69558
UBERF-5628: fix unexpected Reference object in Activity on mentions in description (#4753)
Signed-off-by: Kristina Fefelova <kristin.fefelova@gmail.com>
2024-02-23 01:04:04 +07:00
.github Enhanced Phased build (#4599) 2024-02-12 23:57:11 +07:00
.vscode UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
common UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
dev UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
models UBERF-5628: fix unexpected Reference object in Activity on mentions in description (#4753) 2024-02-23 01:04:04 +07:00
packages UBERF-5679 Add todo list to ListKeymap config (#4751) 2024-02-23 01:03:25 +07:00
plugins UBERF-5628: fix unexpected Reference object in Activity on mentions in description (#4753) 2024-02-23 01:04:04 +07:00
pods UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
products/tracker UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
scripts UBERF-5140: Any workspace names (#4489) 2024-02-02 16:27:27 +07:00
server UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
server-plugins UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
templates Use direct typescript dependency to prevent 'compile ui' errors (#4691) 2024-02-19 10:14:12 +07:00
tests UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00
tools/apm UBERF-5548: Use esbuild with webpack (#4657) 2024-02-16 13:20:03 +07:00
.gitattributes UBER-477: Uberflow dependencies (#3440) 2023-06-20 12:47:00 +07:00
.gitignore Enhanced Phased build (#4599) 2024-02-12 23:57:11 +07:00
.npmrc Migrate to hcengineering and publish to github packages (#2273) 2022-09-21 14:08:25 +06:00
.nvmrc Update node version to v20 (#4532) 2024-02-06 09:57:31 +07:00
.prettierrc UBER-1074: Svelte 4 (#4014) 2023-11-20 17:01:43 +07:00
changelog.md Bump version to 111 (#3500) 2023-07-13 20:34:56 +06:00
LICENSE Initial commit 2021-08-02 21:39:24 +02:00
README.md Update README.md typo (#4589) 2024-02-09 18:18:21 +07:00
rush.json UBERF-5233 YDoc versioning (#4645) 2024-02-22 18:39:50 +07:00

Huly Platform

X (formerly Twitter) Follow GitHub License

Your star shines on us. Star us on GitHub!

About

The Huly Platform is a robust framework designed to accelerate the development of business applications, such as CRM systems. This repository includes several applications, such as Chat, Project Management, CRM, HRM, and ATS. Various teams are building products on top of the Platform, including Huly and TraceX.

Huly

Activity

Alt

Table of Content

Pre-requisites

  • Make sure you have the following installed on your system:
  • Make sure what docker and docker compose commands are available in your terminal (e.g. docker --version and docker compose --version).
  • Make sure what docker and docker compose commands can be executed without sudo (e.g. docker run hello-world and docker compose --version).

Fast start

sh ./scripts/fast-start.sh

Installation

You need Microsoft's rush to install application.

Install rush with $ npm install -g @microsoft/rush command and run $ rush install from the repository root, followed by $ rush build or just:

sh ./scripts/presetup-rush.sh

Build and run

Development environment setup requires Docker to be installed on system.

Support is available for both amd64 and armv8 (arm64) containers on Linux and macOS.

cd ./dev/
rush build    # Will build all the required packages.
rush bundle   # Will prepare bundles.
rush docker:build   # Will build Docker containers for all applications in the local Docker environment.
docker compose up -d --force-recreate # Will set up all the containers

or just:

sh ./scripts/build.sh

By default, Docker volumes named dev_db, dev_elastic, and dev_files will be created for the MongoDB, Elasticsearch, and MinIO instances.

Before you can begin, you need to create a workspace and an account and associate it with the workspace.

cd ./tool # dev/tool in the repository root
rushx run-local create-workspace ws1 -w DevWorkspace # Create workspace
rushx run-local create-account user1 -p 1234 -f John -l Appleseed # Create account
rushx run-local configure ws1 --list --enable '*' # Enable all modules, even if they are not yet intended to be used by a wide audience.
rushx run-local assign-workspace user1 ws1 # Assign workspace to user.
rushx run-local confirm-email user1 # To allow the creation of additional test workspaces.

or just:

sh ./scripts/create-workspace.sh

Accessing the URL http://localhost:8087 will lead you to the app in production mode.

Limitations:

  • Local installation does not allow sending emails, so password recovery and notification to email functionalities are not working.
  • Integrations with Telegram, Gmail, and other content sources are available only as Docker containers, built from private repository sources. However, these integrations can be used with the platform.

Run in development mode

Development mode allows for live reloading and a smoother development process.

cd dev/prod
rushx dev-server

Then go to http://localhost:8080

Use the following login credentials:

Email: user1
Password: 1234
Workspace: ws1

Update project structure and database

If the project's structure is updated, it may be necessary to relink and rebuild the projects.

rush update
rush build

It may also be necessary to upgrade the running database.

cd ./dev/tool
rushx upgrade -f

In cases where the project fails to build for any logical reason, try the following steps:

rush update
rush build --clean

Tests

Unit tests

rush test # To execute all tests

rushx test # For individual test execution inside a package directory

UI tests

cd ./tests
rush build
rush bundle
rush docker:build
## creates test Docker containers and sets up test database
./prepare.sh
## runs UI tests
rushx uitest

To execute tests in the development environment, please follow these steps:

cd ./tests
./create-local.sh ## use ./restore-local.sh if you only want to restore the workspace to a predefined initial state for sanity.
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 the matching test pattern.

Package publishing

node ./common/scripts/bump.js -p projectName

Additional testing

This project is tested with BrowserStack.

© 2024 Hardcore Engineering Inc.