{"id":27634708,"url":"https://github.com/davidogalo/appointmentscheduler","last_synced_at":"2026-05-08T01:42:05.657Z","repository":{"id":286699030,"uuid":"961018379","full_name":"DavidOgalo/AppointmentScheduler","owner":"DavidOgalo","description":"healthcare appointment scheduling system designed to streamline patient-doctor interactions and medical record management.","archived":false,"fork":false,"pushed_at":"2025-04-18T16:51:25.000Z","size":254,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-19T05:38:11.848Z","etag":null,"topics":["async-processing","domain-driven-design","error-handling","fastapi","integration-testing","jwt-authentication","openapi","postgresql-database","pydantic-models","redis-cache","request-validation","restful-api","role-based-access-control","sqlalchemy","transaction-management","unit-testing"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DavidOgalo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-04-05T15:21:32.000Z","updated_at":"2025-04-18T16:51:29.000Z","dependencies_parsed_at":"2025-04-07T23:38:13.579Z","dependency_job_id":null,"html_url":"https://github.com/DavidOgalo/AppointmentScheduler","commit_stats":null,"previous_names":["davidogalo/appointmentscheduler"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidOgalo%2FAppointmentScheduler","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidOgalo%2FAppointmentScheduler/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidOgalo%2FAppointmentScheduler/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DavidOgalo%2FAppointmentScheduler/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DavidOgalo","download_url":"https://codeload.github.com/DavidOgalo/AppointmentScheduler/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250497090,"owners_count":21440255,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async-processing","domain-driven-design","error-handling","fastapi","integration-testing","jwt-authentication","openapi","postgresql-database","pydantic-models","redis-cache","request-validation","restful-api","role-based-access-control","sqlalchemy","transaction-management","unit-testing"],"created_at":"2025-04-23T19:20:25.961Z","updated_at":"2026-05-08T01:42:05.613Z","avatar_url":"https://github.com/DavidOgalo.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Healthcare Appointment Scheduler\n\nA comprehensive healthcare appointment scheduling system designed to streamline patient-doctor interactions, manage medical records, and optimize healthcare facility operations.\n\n## Table of Contents\n- [Overview](#overview)\n- [Features](#features)\n- [Technology Stack](#technology-stack)\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Configuration](#configuration)\n- [Database Setup](#database-setup)\n- [Running the Application](#running-the-application)\n- [Testing](#testing)\n- [Documentation](#documentation)\n- [Contributing](#contributing)\n\n## Overview\n\nThe Healthcare Appointment Scheduler is a robust backend service that provides a comprehensive solution for managing healthcare appointments, patient records, and doctor schedules. The system is built with scalability, security, and maintainability in mind, following industry best practices and standards.\n\n## Features\n\n### Core Functionality\n- User Management: Secure authentication and role-based access control\n- Appointment Management: Scheduling, rescheduling, cancellation, recurring appointments\n- Medical Records: Secure storage and management of patient records\n- Doctor-Patient Management: Assignment and relationship tracking\n- Staff Management: Department and role management\n- Audit and Security: Comprehensive logging and security measures\n\n### Future Enhancements\n- Web-based Dashboard: Intuitive user interface for all stakeholders\n- Advanced Appointment Features: Waitlist management\n- Department Management: Specialized department handling\n- Analytics and Reporting: Data-driven insights and reporting\n- Integration Capabilities: EHR and payment system integration\n- Advanced Security: Two-factor authentication\n\n## Technology Stack\n\n### Backend\n- Python 3.11+\n- FastAPI\n- SQLAlchemy\n- PostgreSQL\n- Pydantic\n- JWT Authentication\n- Alembic (Database Migrations)\n\n### Frontend (Future Implementation)\n- React.js\n- TypeScript\n- Material-UI\n- Redux Toolkit\n- React Query\n\n### DevOps\n- Docker\n- Docker Compose\n- GitHub Actions\n- PostgreSQL\n- Redis\n\n## Prerequisites\n\n- Python 3.11 or higher\n- PostgreSQL 15 or higher\n- Docker and Docker Compose (for containerized deployment)\n- Git\n- psql (PostgreSQL command-line tool)\n- make (optional, for using Makefile commands)\n\n## Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/yourusername/healthcare-appointment-scheduler.git\ncd healthcare-appointment-scheduler\n```\n\n2. Create and activate a virtual environment:\n```bash\n# Windows\npython -m venv venv\n.\\venv\\Scripts\\activate\n\n# Linux/macOS\npython -m venv venv\nsource venv/bin/activate\n```\n\n3. Install dependencies:\n```bash\npip install -r requirements.txt\n```\n\n4. Set up environment variables:\n```bash\ncp .env.example .env\n# Edit .env with your configuration\n```\n\n## Configuration\n\nThe application uses environment variables for configuration. Key settings include:\n\n- Database configuration\n- JWT settings\n- CORS settings\n- Email settings (for notifications)\n- Redis settings (for caching)\n\nRefer to `.env.example` for all available configuration options.\n\n## Database Setup\n\nThe application uses PostgreSQL as its database. You can set up the database in two ways:\n\n### Using Docker (Recommended)\n\n1. Start the PostgreSQL container:\n```bash\ndocker-compose up -d db\n```\n\n2. Wait for the database to be ready (about 10-15 seconds)\n\n3. To recreate the database schema from scratch, run:\n```bash\npython -m app.db.init_db\n```\n\n### Manual Setup\n\n1. Create a PostgreSQL database:\n```bash\ncreatedb appointment_scheduler\n```\n\n2. Connect to the database:\n```bash\npsql appointment_scheduler\n```\n\n3. To recreate the database schema from scratch, run:\n```bash\npython -m app.db.init_db\n```\n\n### Database Reset\n\nIf you need to reset the database to a clean state:\n\n1. Using Docker:\n```bash\ndocker-compose down -v\ndocker-compose up -d db\npython -m app.db.init_db\n```\n\n2. Manual setup:\n```bash\ndropdb appointment_scheduler\ncreatedb appointment_scheduler\npython -m app.db.init_db\n```\n\n### Database Migrations\n\nThe application uses Alembic for database migrations. To manage migrations:\n\n1. Create a new migration:\n```bash\nalembic revision --autogenerate -m \"description of changes\"\n```\n\n2. Apply migrations:\n```bash\nalembic upgrade head\n```\n\n3. Rollback migrations:\n```bash\nalembic downgrade -1\n```\n\n## Running the Application\n\n### Development Mode\n```bash\n# Windows\nuvicorn app.main:app --reload --host 0.0.0.0 --port 8000\n\n# Linux/macOS\nuvicorn app.main:app --reload --host 0.0.0.0 --port 8000\n```\n\n### Production Mode\n```bash\ndocker-compose up -d\n```\n\n## Testing\n\nThe project includes comprehensive test suites:\n\n- Unit tests for models and services\n- Integration tests for API endpoints\n- Database tests\n- Security tests\n\nRun tests using:\n```bash\n# Run all tests\npytest\n\n# Run tests with coverage\npytest --cov=app tests/\n\n# Run specific test file\npytest tests/test_models.py\n\n# Run tests with detailed output\npytest -v\n```\n\n## Documentation\n\n### API Documentation\nThe API documentation is available at `/docs` when running the application. It provides:\n- Interactive API documentation (Swagger UI)\n- OpenAPI specification\n- Example requests and responses\n\n### System Documentation\nComprehensive system documentation is available in the `docs` directory, it covers:\n- System Architecture\n- Database Schema\n- API Endpoints\n- Deployment Guide\n\n## Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Create a Pull Request\n\nPlease ensure your code follows the project's coding standards and includes appropriate tests.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidogalo%2Fappointmentscheduler","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdavidogalo%2Fappointmentscheduler","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdavidogalo%2Fappointmentscheduler/lists"}