Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/johnntirintis/physiosoft

Physiosoft is a web application for managing physiotherapy appointments, patient records, and physiotherapist profiles. Developed using ASP.NET Core, C#, and Entity Framework, it offers features like appointment scheduling, patient management, and user authentication, tailored for efficient management.
https://github.com/johnntirintis/physiosoft

asp-net-core asp-net-mvc csharp entity-framework healthcare-application mvc web-application

Last synced: 1 day ago
JSON representation

Physiosoft is a web application for managing physiotherapy appointments, patient records, and physiotherapist profiles. Developed using ASP.NET Core, C#, and Entity Framework, it offers features like appointment scheduling, patient management, and user authentication, tailored for efficient management.

Awesome Lists containing this project

README

        

# Physiosoft

Physiosoft is a comprehensive web application tailored for physiotherapy facilities. It streamlines the process of managing physiotherapists, patients, and appointments, offering a centralized platform for scheduling and tracking sessions. The application is built with a focus on ease of use and efficiency in managing daily operations of a physiotherapy center.

## Features

- **Appointment Scheduling**: Users can create, update, and delete appointments efficiently, facilitating smooth operation of the physiotherapy sessions.
- **Patient Management**: Allows for the registration and management of patient information, ensuring that patient records are easily accessible and well-organized.
- **Physiotherapist Profiles**: Manage and maintain detailed profiles for physiotherapists, including their schedules, specializations, and availability.
- **Appointment Tracking**: Provides a comprehensive view of upcoming and past appointments, aiding in better planning and resource allocation.

## Technical Architecture

Physiosoft employs a robust MVC layered architecture, ensuring separation of concerns and making the application scalable and maintainable. The architecture is outlined as follows:

- **Data Access Object (DAO) / Data Transfer Object (DTO)**: For handling data interactions and transfer between different application layers.
- **Data Layer**: Manages the application's data structures, it's logic and its interaction with the database.
- **View Layer**: Manages the user interface and presentation logic.
- **Controllers**: Serve as an intermediary between the Model and View layers, handling user input and responses.

In addition to this, Physiosoft integrates various other technologies and practices:

- **Repository Architecture**: Incorporating IBaseRepository and BaseRepository patterns for abstracted data operations, alongside IUserRepository and UserRepository for user-specific data handling.
- **Entity Framework**: Utilizes Entity Framework for object-relational mapping, simplifying data access and manipulation.
- **DbContext and Fluent API**: Manages database contexts and employs Fluent API for advanced configuration and mappings.
- **Validators**: Ensures data integrity and validation throughout the application.
- **Custom Exceptions**: Implements custom exception handling for clearer and more precise error management.
- **NLogger**: For efficient and effective logging of application activities and errors.
- **User Registration/Login/Validation**: Manages user accounts, authentication, and authorization securely.

## Tech Stack
- **C# and .NET 8**: Forms the core of backend development, providing a powerful and efficient programming environment.
- **SQL Database**: Utilizes SQL databases for robust and reliable data storage.
- **Razor, Bootstrap, and JQuery**: These technologies enhance the front-end development, ensuring a responsive and user-friendly interface.

## Installation and Setup


  1. Clone the repository:


    git clone https://github.com/JohnNtirintis/Physiosoft.git


  2. Database Setup:

    • Navigate to the SQL folder within the cloned repository.

    • Open SSMS.

    • Run the CreateDatabase.sql script to create the necessary database schema.

    • Execute the CreateUser.sql script to create user accounts.

    • Finally, run the PopulateDatabase.sql script to populate the database with some example data.



  3. Application Configuration

    • Ensure that the connection strings in the application configuration file (appsettings.json) are set to point to your newly created database.

    • Verify that other configuration settings (like any API keys or external service configurations) are correctly set up.