Tiberiu02 / inck

Space efficient, time efficient, web-based note taking app with real time collaboration.

Home Page:https://inck-client.vercel.app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Inck

Space efficient, time efficient, web-based note taking app with real time collaboration.

Built in Next.js using WebGL and web sockets.

Screenshots

alt text alt text alt text alt text alt text

Try it out at inck.io

Contents

Dependencies

Node.js, MongoDB, Redis, as well as a few Node.js packages.

Installation

  1. Install MongoDB
brew install mongodb
mkdir -p /data/db
sudo chown -R `id -un` /data/db
mongod
  1. Install Node.js & NPM
  2. Install and start redis
brew install redis
redis-server
  1. Open the project in command-line
  2. Install server and client dependencies using npm install
  3. Start project in development mode using npm run dev-all

Usage

Open your browser and go to https://localhost:3080.

Deployment

This project has 3 components: server, client, and common types.

Build everything with npm run build-all.

Start everything with npm run start-all or just the server/client with npm run start-server and npm run start-client

PM2

The app is deployed using PM2 on an Amazon EC2 virtual machine. There are two processes: "client" and "server". Both processes start automatically after a reboot.

Cheatsheet

Restart processes using

  • pm2 restart server
  • pm2 restart client
  • pm2 restart all
  • don't forget to rebuild the client if changed by running npm run build in client folder

Reset restart counters using

  • pm2 reset all

Processes were created by running the following commands in the apropriate folders:

  • pm2 start "npm run start" --name server
  • pm2 start "npm run start" --name client

Ports

The frontend is running on port 3080, not 80, due to permission issues.

Traffic is redirected from port 80 to 3080 with the following command:

sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3080

This command is scheduled to run at startup automatically using chromtab crontab -e command, read more about chrontab here.

Other

See number of lines of code using npm run line-count.

About

Space efficient, time efficient, web-based note taking app with real time collaboration.

https://inck-client.vercel.app


Languages

Language:TypeScript 94.1%Language:HTML 2.5%Language:JavaScript 2.3%Language:CSS 0.9%Language:GLSL 0.1%Language:Shell 0.0%