reyesml / RMT

The CRM for individuals
GNU General Public License v3.0
4 stars 0 forks source link

RMT

Build & Test

RMT gives the power of CRM's to individuals.

Key features:

Journal

Record your thoughts. Track your state of mind over time.

People

Manage relationships like a pro.

Initiatives

Coming soon.


Development

Recommended pre-requisites

Running the project

Download the dependencies by running make in the project root.

Configure the server by copying the contents of app/example.config.yml into a new app/config.yml file. Replace the signing secret with your own secret. The signing secret is used for session validation.

Initialize the dev database by running make init-dev-db. This will create a new SQLite database with all the tables created. It will also add a new "admin" user with a default password of "not_secure".

Launch the API by running make run-dev-server.

Launch the web server by running make run-dev-client.

Project Architecture

image

Backend

The backend of RMT is split into two distinct segments: Core, and the HTTP server.

app/core/ is the heart of the service. It is responsible for database interactions (database/, repos/), defining the models used throughout the app (models/), and defining the business logic (interactors/). core/ is protocol agnostic.

app/httpserver is an HTTP server that exposes app/core's functionality to web clients. app/httpserver defines different HTTP controllers to handle incoming requests (controllers/), and those controllers delegate work to app/core.

Frontend

The frontend of RMT lives in web-client/. The web client is implemented using SvelteKit, and the project project loosely follows SvelteKit project conventions.