residency-explorer-local is a locally hosted web app that simplifies managing data about medical residency programs in the US, aiding prospective residents in making informed decisions during the Residency Match process.
-
User-Friendly Data Entry: Easily input information about medical residency programs through intuitive forms.
-
Table View: Data is presented in well-organized tables, making it easy to review and manage.
-
Instant Filtering and Sorting: Real-time data filtering and sorting within tables, no page reload needed.
-
Install Docker Desktop.
-
Generate the
.envfile. This step is required only once during the installation.2.1. Open
PowerShell2.2. Navigate to the root directory of the project
2.3. Run
python ./scripts/generate_dotenv/dotenv_from_toml.py
Unfortunately, you will need to figure out how to install Python if you don't have it already.
Alternatively, you can use an unsafe method: simply rename
.env.exampleto.envin the root directory of the project.
- Ensure the
.envfile is present in the root directory of the project. - From the root of the project, open PowerShell and run the following command:
docker compose up --buildThis will build and start the application. Once the application is ready, you will be prompted to visit 0.0.0.0:8888 in your browser.
After the first launch, you can start and manage the application directly
from Docker Desktop.
Open Docker Desktop and navigate to the Containers section.
You will find a shortcut to start the application under the
residency-explorer-local container.
After starting the container, you can click on the link labeled 8888:8888
to open the application in your browser.
It is recommended to stop the application in Docker Desktop when
you're done using it to free up system resources.
- Create a Program in the
ProgramsSection. - Once a Program is created, you can add associated statistics in the
Program statisticssection and assign a director in theDirectorssection. - After a director is added, you can further enrich the data by adding peers (colleagues)
in the
Directors' Peerssection and alumni in theDirectors' Alumnisection.
A: Adding a director without a program, or peers without a director, is meaningless.
Summary information about the programs will be displayed in the Program Overview, and summary information about
directors will be available in the Director Overview. These are convenient tables for searching and sorting
information.
Each table can be exported to CSV, Excel, or PDF. For the highest quality PDF export, it is recommended to use
the Print option and save as PDF.
The Predefined tab contains pre-filled auxiliary tables. You can edit these tables as needed. However, it is
recommended not to delete rows that are linked to other tables, as this may cause those linked entries to be deleted as
well.
Python 3.12: Core programming language for the app.Uvicorn: ASGI server for running the app.
PostgreSQL: Relational database for data storage.SQLAlchemy: ORM for database interactions.Psycopg2: Synchronous PostgreSQL adapter for Python.
Because
starlette-adminseem not to support async engines
Alembic: Database migrations tool for SQLAlchemy.
Pydantic: Data validation and type checking.Pydantic-Settings: Handling of env variables and settings.Rtoml: TOML configuration file parser.
Starlette-admin: Provides a web interface for managing the database.
This diagram was created using dbdiagram.io.
The database schema code is available in the
./docs/database_schema.dbml
file.
The primary configuration file for the application is config.toml.
After making any changes to this file, you must generate a new .env file.
This can be done using
python ./scripts/generate_dotenv/dotenv_from_toml.pyAlternatively, you can use the following Makefile command to generate the .env file:
make dotenvIt's important to ensure that the .env file is correct, as only with
a properly configured .env will the
docker compose up --buildfunction correctly.