vor

module
v1.1.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2020 License: GPL-3.0

README

Obserfy logo

Obserfy

Record keeping and parent communication tool for Montessori based schools.

Obserfy is released under the GPL-3 license. Codeclimate maintainability score. Current npm package version. Downloads per month on npm.

This is the main repo of Obserfy. This repo contains every code that you need to run Obserfy on your own. Obserfy is currently still on its early days. If you were to give it a try, we would love to hear any of your feedback through github issue, or email at chrsep@protonmail.com.

Vision

Obserfy aims to empower teachers and schools to provide high-quality education to more children by simplifying and automating as much of their works as possible. Our software should be fast, simple, and accessible. It should get out of the way of the teachers, allowing them to focus on understanding and planning the education of their students.

Codebase

Technologies

  • Golang: For handling routing and API
  • React: For web frontend App
  • Typescript: Typesafe Javascript for frontend
  • Postgres: Database

Folder structure

vor/
|--docker           # Docker config files
    |-- nginx       # Nginx that handles https and frontend caching (optional)
    |-- postgres    # Postgres db for development only
    |-- vor         # Docker image for running Obserfy
|--frontend         # Frontend SPA built on Gatsby
|--pkg              # Routing and APIs using go
|--mailTemplates    # Templates for emails

Backend

Below are a high level overview of the big dependencies that we use for our go powered backend:

Frontend

Currently, we are focusing on building a great web experience with PWA support for the client. Below are the tech stack we use for our frontend:

  • Gatsby: For building performance optimized SPA/PWA
  • React: For the view layer
  • Typescript: For type checking
  • Storybook: For easier development and react component documentations
  • Testing
    • Jest: For snapshot and unit tests
    • Cypress: For e2e test

Initial setup

Pre-requisite

To run obserfy for development, you'll need the following tools:

  • Docker: See the Docker documentation for instructions to install docker and docker-compose
  • Node:12: Install node 12, we recommend nvm to do this, so that you can have multiple node versions on you computer.
  • Yarn V1: See yarn's documentation on how to install.

Setup env

Simply copy the .env.example into .env so that it will be read by docker-compose.

cp .env.example .env

Running obserfy

Docker compose

You'll need to run docker-compose, it will start up every backend service we need for development, such as DB, Nginx, the application server itself, etc. To run docker-compose simply run:

docker-compose up -d

If you're only modifying the application server codes, this should be enough. It will run the application server code with live reload. It also will run with debugging enabled via go-delve on port 40000. The application server will be serving on http://localhost:8000.

Gatsby development server

To develop the web frontend, you'll need to start the gatsby development server. First go to the frontend folder.

cd frontend

Then install its dependencies.

yarn install

Then you'll be able to run gatsby's development server.

yarn develop

This will start gatsby's development server on http://localhost:8001. It will proxy all request to its /api and /auth routes to the application server on http://localhost:8000 automatically.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL