Effortlessly manage your schedule, track costs, and monitor earnings - initially made for psychologists
Explore the docs
-
Report Bug
-
Request Feature
In the fast-paced and demanding field of psychology, professionals need an effective way to manage their practices without getting bogged down by administrative tasks. Our project aims to simplify and streamline these processes so that psychologists can focus more on what really matters: their patients.
cliniccontrol
βββ apps
β βββ core-rest-api-service
β βββ (...)
β
βββ docs
β
βββ libs
β βββ core-rest-api
β β βββ src
β β βββ core
β β βββ adapters
β β
β βββ (...)
β
βββ scripts
β
(...)
We have chosen to use a monorepo structure for this project, which allows us to manage all of our code in a single repository. This makes it easier to share code between different applications, and also allows us to use powerful development tools like Nx Console.
Along with the monorepo structure, we have also chosen to use Hexagonal Architecture, which separates the core logic of the application from the services that it uses, making the system more maintainable, scalable, and testable.
apps/core-rest-api-service/
This directory houses the RESTful API service. It is where we define the entry point of our application, and where we can configure the server and database connections.
docs/
This directory houses all of the documentation for the project. It is where we can find the project's requirements, design documents, and other important information.
libs/core-rest-api/src/core/
This directory houses the domain-specific logic, business rules, and use-cases of the service. It serves as the heart of your application, designed to be both extensible and insulated from outside changes. Files and modules within this folder dictate the 'what' and 'why' but not the 'how' of our service.
libs/core-rest-api/src/adapters/
Here you will find various adapters that act as the bridge between your core business logic and external services or databases. Whether it's a database driver, third-party API, or other kinds of service integrations, this folder enables seamless connectivity without affecting the core domain logic.
This project leverages a robust and modern tech stack to deliver a fast, secure, and scalable solution. Below are some of the key technologies, frameworks, and architectures we've used:
under development
In order to run the application the following should have been installed on your local machine:
pnpm install
to install all dependenciesRun pnpm run env:setup
to create the .env
file and set the environment variables
To create JWT_PRIVATE_KEY
and JWT_PUBLIC_KEY
follow the steps below:
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
openssl rsa -pubout -in private_key.pem -out public_key.pem
base64 -i private_key.pem > private_key-base64.txt
base64 -i public_key.pem > public_key-base64.txt
.env
file as the value of JWT_PRIVATE_KEY
.env
file as the value of JWT_PUBLIC_KEY
To setup core-rest-api service
containers and database, follow the steps below:
pnpm run core-setup --action=migrate,generate # setup docker container and run migrations and generate prisma client
pnpm exec nx run core-rest-api:serve # start the core-rest-api service in development mode
under development
See the open issues for a list of proposed features (and known issues).