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.
- β³- Schedule Management: Easily schedule appointments, set reminders, and automate cancellations to manage your time efficiently.
- β³- Cost Tracking: Accurately record and analyze costs such as rent, utilities, and supplies, to get a clear picture of your overhead expenses.
- β³- Earnings Monitoring: Keep track of payments, generate invoices, and visualize your income over various time frames to understand your financial health.
- β³- Client Management: Safely store client information, treatment plans, and session notes in one centralized, secure database.
- β³- Data Visualization: Use intuitive graphs and charts to understand your practice's performance metrics, like client retention, earnings, and more.
- β³- User-Friendly Interface: Designed with user experience in mind, making it easy for anyone to use, even with little to no technical expertise.
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:
- Hexagonal Architecture: This architecture separates the core logic of the application from the services that it uses, making the system more maintainable, scalable, and testable.
- Nx Workspace: Utilized for efficient monorepo management, Nx Workspace allows for optimized builds, code sharing, and powerful development tools.
- Vite: A build tool and development server that serves as the backbone for our frontend, offering fast development and build times.
- ReactJS: Employed for building a dynamic and interactive UI, React allows for efficient data rendering and state management.
- NestJS: A progressive Node.js framework for building efficient, reliable, and scalable server-side applications.
under development
In order to run the application the following should have been installed on your local machine:
- Fork this repository
- Clone the forked repository to your local machine
- Run
pnpm installto install all dependencies
-
Run
pnpm run env:setupto create the.envfile and set the environment variables -
To create
JWT_PRIVATE_KEYandJWT_PUBLIC_KEYfollow the steps below:- Run the following commands to generate private and public keys:
openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048 openssl rsa -pubout -in private_key.pem -out public_key.pem
- Run the following commands to generate private and public keys in base64:
base64 -i private_key.pem > private_key-base64.txt base64 -i public_key.pem > public_key-base64.txt
- Copy the private key in base64 and paste it in the
.envfile as the value ofJWT_PRIVATE_KEY - Copy the public key and paste it in the
.envfile as the value ofJWT_PUBLIC_KEY
-
To setup
core-rest-api servicecontainers 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 modeFor more information about scripts and commands, please checkout to the scripts
under development
See the open issues for a list of proposed features (and known issues).
- Italo Amaral - FullStack Developer - Owner
- Luana Vefago - FullStack Developer - Owner
- Aline Crestani - Designer & UX/UI - Owner