Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
6b8e085
Project setup
kmuwanga83 Aug 26, 2025
f1d89ad
Update Sample.py
kmuwanga83 Aug 26, 2025
195e8f6
Core setup
RonaldRonnie Aug 26, 2025
22ac934
Update README.md
RonaldRonnie Aug 26, 2025
dd02587
Update README.md
RonaldRonnie Aug 26, 2025
5a7f9c2
feat: Complete local development environment setup and Docker-first d…
RonaldRonnie Sep 8, 2025
699ae1d
Merge pull request #3 from bos-com/3-local-dev
RonaldRonnie Sep 8, 2025
a074359
Document sanitized error handling practices
Sakeeb91 Oct 9, 2025
92f71dc
Document health data audit logging
Sakeeb91 Oct 9, 2025
fcc46f8
Implement audit logging for health data access
Sakeeb91 Oct 9, 2025
c9fde1e
Implement appointment scheduling API
Sakeeb91 Oct 9, 2025
6b3d416
Implement patient records API with role-based access
Sakeeb91 Oct 9, 2025
b182420
Sanitize API error responses and add tests
Sakeeb91 Oct 9, 2025
6ac6755
Merge pull request #9 from Sakeeb91/fix-sensitive-error-docs
RonaldRonnie Oct 10, 2025
117bf94
Merge branch 'main' into audit-logs-docs
RonaldRonnie Oct 11, 2025
de61338
Merge pull request #10 from Sakeeb91/audit-logs-docs
RonaldRonnie Oct 11, 2025
c71e4e0
Resolve merge conflicts across 4 files
RonaldRonnie Dec 25, 2025
956bf51
Merge pull request #14 from bos-com/pr-4-patient-records-api
RonaldRonnie Dec 25, 2025
d5758c1
Merge pull request #11 from Sakeeb91/appointment-scheduling-api
RonaldRonnie Dec 25, 2025
9c73f2a
feat: Implement RBAC for issue #6
RonaldRonnie Dec 25, 2025
eda7df4
Merge pull request #15 from bos-com/issue-6-rbac-enhancement
RonaldRonnie Dec 25, 2025
c79f256
feat: Comprehensive Appointment Scheduling API for issue #5
RonaldRonnie Dec 25, 2025
f717bf6
Merge pull request #16 from bos-com/issue-5-appointment-scheduling
RonaldRonnie Dec 25, 2025
0dd0185
Add CONTRIBUTING.md with clear developer guidelines
Kalemeeracollins Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 81 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Django Configuration
DEBUG=True
SECRET_KEY=your-secret-key-here-change-in-production
ALLOWED_HOSTS=localhost,127.0.0.1,0.0.0.0

# Database Configuration
DB_ENGINE=django.db.backends.postgresql
DB_NAME=opencare_africa
DB_USER=opencare_user
DB_PASSWORD=your-db-password
DB_HOST=localhost
DB_PORT=5432

# Redis Configuration
REDIS_URL=redis://localhost:6379/0
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0

# Email Configuration
EMAIL_BACKEND=django.core.mail.backends.smtp.EmailBackend
EMAIL_HOST=smtp.gmail.com
EMAIL_PORT=587
EMAIL_USE_TLS=True
EMAIL_HOST_USER=your-email@gmail.com
EMAIL_HOST_PASSWORD=your-app-password

# AWS S3 Configuration (for file storage)
AWS_ACCESS_KEY_ID=your-aws-access-key
AWS_SECRET_ACCESS_KEY=your-aws-secret-key
AWS_STORAGE_BUCKET_NAME=opencare-africa-storage
AWS_S3_REGION_NAME=us-east-1
AWS_S3_CUSTOM_DOMAIN=your-custom-domain.com

# JWT Configuration
JWT_SECRET_KEY=your-jwt-secret-key
JWT_ACCESS_TOKEN_LIFETIME=5
JWT_REFRESH_TOKEN_LIFETIME=1

# Health Data Standards
FHIR_SERVER_URL=https://hapi.fhir.org/baseR4
OPENMRS_URL=http://localhost:8080/openmrs

# Analytics & Monitoring
SENTRY_DSN=your-sentry-dsn
METABASE_URL=http://localhost:3000
SUPERSET_URL=http://localhost:8088

# Mobile App Configuration
MOBILE_APP_API_URL=http://localhost:8000/api/v1
MOBILE_APP_VERSION=1.0.0

# Security
CORS_ALLOWED_ORIGINS=http://localhost:3000,http://localhost:8080
CSRF_TRUSTED_ORIGINS=http://localhost:3000,http://localhost:8080

# Development Settings
USE_DEBUG_TOOLBAR=True
USE_SILK_PROFILER=False
ENABLE_LOGGING=True

# Internationalization
LANGUAGE_CODE=en-us
TIME_ZONE=UTC
USE_I18N=True
USE_L10N=True
USE_TZ=True

# Static and Media Files
STATIC_URL=/static/
MEDIA_URL=/media/
STATIC_ROOT=staticfiles/
MEDIA_ROOT=media/

# Celery Configuration
CELERY_BROKER_URL=redis://localhost:6379/0
CELERY_RESULT_BACKEND=redis://localhost:6379/0
CELERY_ACCEPT_CONTENT=json
CELERY_TASK_SERIALIZER=json
CELERY_RESULT_SERIALIZER=json
CELERY_TIMEZONE=UTC
209 changes: 209 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
Pipfile.lock

# PEP 582
__pycache__/
*.py[cod]
*$py.class

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyderworkspace

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/

# Django
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Django static files
staticfiles/
static/

# Django media files
media/

# Django migrations
*/migrations/*.py
!*/migrations/__init__.py

# IDE
.vscode/
.idea/
*.swp
*.swo
*~

# OS
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Node.js (for mobile app)
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# React Native
.expo/
dist/
web-build/

# Android
android/app/build/
android/build/
android/gradle/
android/local.properties
android/.gradle/

# iOS
ios/build/
ios/Pods/
ios/Podfile.lock

# Docker
.dockerignore

# Backup files
*.bak
*.tmp
*.temp

# Local development
local_settings.py
.env.local
.env.development
.env.production

# Database
*.db
*.sqlite
*.sqlite3

# Logs
logs/
*.log

# Coverage reports
htmlcov/
.coverage
.coverage.*
Loading