Skip to content

Web application for building multi-line calculations with results visible on the fly. Supports units of measurement.

License

Notifications You must be signed in to change notification settings

lukix/calcspace

Repository files navigation

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

yarn run install:all

docker-compose cheat sheet

Start app by running:

docker-compose up -d

Stop app:

docker-compose down

Rebuild docker images:

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

See logs:

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.

About

Web application for building multi-line calculations with results visible on the fly. Supports units of measurement.

Topics

Resources

License

Stars

Watchers

Forks

Languages