Skip to content

Effortlessly manage your schedule, track costs, and monitor earnings - initially made for psychologists

Notifications You must be signed in to change notification settings

ItaloRAmaral/cliniccontrol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

517 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Clinic Control

Effortlessly manage your schedule, track costs, and monitor earnings - initially made for psychologists

Explore the docs - Report Bug - Request Feature

Issues Contributors Quality Gate Status Vulnerabilities Security Rating Code Smells GitHub release GitHub tag

πŸ“‹ Table Of Contents

πŸ“– About The Project

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.

✨ Features

  • ⏳- 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.

πŸ—οΈ Project Structure

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.

πŸ“š Definitions

Apps

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

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.

Libraries

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.

πŸ› οΈ Built With

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:

Architecture
  • 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.
Monorepo Management
  • Nx Workspace: Utilized for efficient monorepo management, Nx Workspace allows for optimized builds, code sharing, and powerful development tools.
Frontend
  • 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.
Backend
  • NestJS: A progressive Node.js framework for building efficient, reliable, and scalable server-side applications.

πŸš€ Getting Started

under development

πŸ”§ Prerequisites

In order to run the application the following should have been installed on your local machine:

We Recommend

Installation

βš™οΈ Installation

  • Fork this repository
  • Clone the forked repository to your local machine
  • Run pnpm install to install all dependencies

Project Setup

  • Run 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:

    • 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 .env file as the value of JWT_PRIVATE_KEY
    • Copy the public key and paste it in the .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
For more information about scripts and commands, please checkout to the scripts

▢️ Usage

under development

πŸ—ΊοΈ Roadmap

See the open issues for a list of proposed features (and known issues).

πŸ‘₯ Authors

πŸ“ Acknowledgements/References

About

Effortlessly manage your schedule, track costs, and monitor earnings - initially made for psychologists

Topics

Resources

Stars

Watchers

Forks

Contributors 5