项目作者: lukix

项目描述 :
Web application for building multi-line calculations with results visible on the fly. Supports units of measurement.
高级语言: TypeScript
项目地址: git://github.com/lukix/calcspace.git
创建时间: 2019-12-11T16:46:40Z
项目社区:https://github.com/lukix/calcspace

开源协议:MIT License

下载


CalcSpace

calcspace.com is a web application that lets you build multi-line calculations and instantly see the results. It supports units of measurement, so it’s great for physics and engineering. Sharing mechanism makes it easy to collaborate with other people.

CalcSpace usage demo

Repository structure

This repository contains both backend and frontend code.
Backend code sits in the /server directory and frontend code in the /client directory.

Technologies

Here is a list of a few of the most important technologies used on this project:

  • JavaScript (technically TypeScript but with a very forgiving configuration)
  • ReactJS
  • ExpressJS
  • PostgreSQL + node-postgres

Development

NodeJS version

NodeJS version that is currently used in the project can be found in the .nvmrc file. It should match the version specified in server/package.json > engines.node (for Heroku) and in both Dockerfiles.

Install dependencies

  1. yarn run install:all

docker-compose cheat sheet

Start app by running:

  1. docker-compose up -d

Stop app:

  1. docker-compose down

Rebuild docker images:

  1. docker-compose up -d --build --force-recreate --remove-orphans

See logs:

  1. docker-compose logs -f

DB migrations

Database migrations are run on every start of the NodeJS server. They are specified in the setupDatabase.ts file.

Math parser

Calcspace uses a custom math parser. For more details check parseExpression docs and parsing analyzer tool on calcspace.com/analyzer.