Getting Turnero running locally requires only a PostgreSQL server and the .NET 10 SDK. The entire setup — from cloning the repository to seeing the login page in your browser — takes fewer than ten minutes on a clean machine. Firebase is entirely optional and only needed if you want to enable the mobile push-notification and JWT authentication features.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/pabloeferreyra/Turnero/llms.txt
Use this file to discover all available pages before exploring further.
Install Prerequisites
Make sure the following tools are available on your machine before you begin.
Verify your .NET installation:
| Requirement | Minimum version | Notes |
|---|---|---|
| .NET SDK | 10.0 | Includes the dotnet CLI, EF Core tools can be installed on top |
| PostgreSQL | 13+ | Any edition; a local install or Docker container both work |
| EF Core CLI tools | — | Install once globally with dotnet tool install --global dotnet-ef |
| Git | — | To clone the repository |
| Firebase project | — | Optional. Only required for push notifications and JWT auth |
Clone the Repository
Clone the Turnero source from GitHub and move into the project root:The repository contains four .NET projects in a single solution:
Configure the Database Connection String
Turnero reads its PostgreSQL connection string from the Set the connection string, replacing the placeholder values with your actual PostgreSQL host, port, database name, and credentials:If your PostgreSQL instance requires SSL, append
ConnectionStrings:LocalConnection configuration key. Never commit credentials to source control. Use the .NET user-secrets store instead — it writes values to an OS-protected folder outside the repository.Initialise user secrets for the Turnero project (the UserSecretsId is already declared in Turnero.csproj):;SSL Mode=Require;Trust Server Certificate=true to the connection string.The
appsettings.json file committed to the repository intentionally omits the ConnectionStrings section. The application reads it exclusively from user secrets in development and from environment variables or a secured appsettings.json on the production server.Apply EF Core Migrations
Turnero ships with a full migration history inside EF Core will create the database if it does not already exist, then apply every migration in order. On first run this creates tables for ASP.NET Identity (
Turnero.DAL/Migrations/. Run all pending migrations against your PostgreSQL database in one command:AspNetUsers, AspNetRoles, …) as well as the Turnero domain tables (Turns, Medics, TimeTurnViewModel, Patients, and all clinical sub-module tables).Confirm the migration succeeded by connecting with psql or pgAdmin and checking that the __EFMigrationsHistory table is present:Run the Application
Start the development server from the solution root:The application boots, pre-warms its in-memory caches (time slots and doctors), then begins listening. You should see output similar to:Open
https://localhost:5001 in your browser. Accept any self-signed certificate warning in your browser — this is expected in local development.First Login — Create the Admin User
Turnero uses ASP.NET Core Identity for authentication. There is no seeded default user, so you must register the first account yourself and then elevate it to the Admin role.
- Register an account. Click Register on the login page and fill in an email address and password. The password policy requires at least 6 characters with at least one digit and one lowercase letter.
- Assign the Admin role. Because no admin exists yet, you must assign the role directly in the database. Connect to PostgreSQL and run:
- Log in. Return to the application and log in with the account you registered. You now have full Admin access and can create additional users and assign the Medico or Ingreso roles through the Administration panel without needing direct database access again.
Optional: Firebase push notifications. If you want to enable desktop push notifications and Firebase JWT authentication, you need to create a Firebase project, download its service-account JSON file, and save it to the user-secrets folder at the path resolved by
Program.cs. See the Firebase Configuration guide for full instructions.