Commit Graph

43 Commits

Author SHA1 Message Date
1ffbfa5692 feat: add API documentation with drf-spectacular and refactor views
- Install and configure drf-spectacular for OpenAPI/Swagger documentation
- Add Swagger UI endpoints at /api/schema/ and /api/docs/
- Configure SPECTACULAR_SETTINGS with API metadata
- Refactor meetings views from function-based to class-based views
  (ScheduleAppointmentView, RejectAppointmentView, AvailableDatesView,
  UserAppointmentsView, AppointmentStatsView, UserAppointmentStatsView)
- Update URL patterns to use new class-based views
- Simplify ALLOWED_HOSTS configuration to accept all hosts

This improves API discoverability through interactive documentation
and modernizes the codebase by using class-based views for better
code organization and reusability.
2025-11-24 13:29:07 +00:00
9aef796fc7 feat: add user appointment stats endpoint to API root documentation
Add documentation for the new user-specific appointment statistics endpoint
to the API root view. This endpoint provides authenticated users with their
appointment analytics including total requests, pending reviews, scheduled,
rejected, and completed appointments along with completion rate.

The endpoint is available at /api/meetings/user/appointments/stats/ and
requires authentication via GET request.
2025-11-24 11:55:42 +00:00
b7a4e73d93 refactor(config): use dj-database-url for flexible database configuration
- Add dj-database-url package for parsing DATABASE_URL
- Replace hardcoded PostgreSQL config with DATABASE_URL environment variable
- Add connection pooling with conn_max_age and health checks
- Fallback to SQLite for local development when DATABASE_URL is not set
- Remove obsolete production config comments
- Update requirements.txt with new dependency

This change improves deployment flexibility by supporting standard DATABASE_URL format commonly used in cloud platforms (Heroku, Railway, etc.) while maintaining backward compatibility with local development using SQLite.
2025-11-24 00:01:30 +00:00
0a5a5fa800 chore: switch database backend from SQLite to PostgreSQL
Replace SQLite database configuration with PostgreSQL to improve
scalability and production readiness. PostgreSQL configuration uses
environment variables (POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD,
POSTGRES_HOST, POSTGRES_PORT) for flexible deployment across different
environments.
2025-11-23 23:47:53 +00:00
570f5d8fc8 refactor(docker): streamline Dockerfile and add gunicorn workers
- Remove redundant comments for cleaner readability
- Simplify COPY commands using relative paths
- Condense pip installation RUN command to single line
- Add 3 workers to gunicorn for improved concurrent request handling
- Remove accidentally included .dockerignore content from Dockerfile

This improves Dockerfile maintainability and production performance
by configuring multiple gunicorn workers for better throughput.
2025-11-23 23:34:59 +00:00
187bce97e7 added dockerfile 2025-11-23 23:29:50 +00:00
de9f58a7d0 RR%% 2025-11-23 23:24:57 +00:00
d736c1681c # Commit Message
```
refactor: update settings and Docker config for production

- Configure ALLOWED_HOSTS and CORS from environment variables for better security
- Switch default database from PostgreSQL to SQLite3 (PostgreSQL config commented)
- Simplify DEBUG environment variable handling
- Update Dockerfile to use Python 3.11 and gunicorn for production
- Add static file collection in Docker build process
- Add user appointment statistics endpoint (user_apointment_stats)
- Add .dockerignore to exclude unnecessary files from build

These changes improve production readiness by making critical settings
configurable via environment variables and using production-grade WSGI
server (gunicorn) instead of Django development server.
2025-11-23 23:06:17 +00:00
e38c451cff refactor(docker): convert CMD instruction to exec form
Change CMD from multi-line shell form to JSON array exec form for better
signal handling and to follow Docker best practices. Consolidate the command
chain into a single line while maintaining the same functionality (migrate,
collectstatic, runserver).
2025-11-23 19:26:56 +00:00
c5cdc5d774 refactor(docker): clean up dockerfile and improve CMD syntax
- Remove redundant inline comments for better readability
- Replace backslash line continuation with bash -c for CMD instruction
- Remove commented out gunicorn configuration line
- Improve CMD formatting using proper bash string syntax

These changes make the dockerfile cleaner and more maintainable while
preserving the same functionality (migrate, collectstatic, runserver).
2025-11-23 19:23:58 +00:00
c2d6ea04bc chore: switch from gunicorn to Django development server in dockerfile
Replace gunicorn production server with Django's development server
(manage.py runserver) for easier debugging. The gunicorn configuration
has been commented out rather than removed for easy restoration.

**Warning:** This change makes the application unsuitable for production
deployment as runserver is not designed for production use.
2025-11-23 19:19:29 +00:00
e722cbe311 refactor(docker): replace uv with pip and move Django commands to runtime
Replace uv package manager with standard pip for dependency management.
Switch base image from debian:bookworm-slim to python:3.12-slim to include
Python runtime by default.

Key changes:
- Remove uv installation and configuration
- Use requirements.txt instead of pyproject.toml/uv.lock
- Install dependencies with pip instead of uv sync
- Move collectstatic and migrate from build-time to runtime in CMD
- Simplify gunicorn command invocation

This simplifies the build process and makes the image more portable by
using standard Python tooling. Running migrations and collectstatic at
container startup ensures they execute against the correct database and
storage backend.
2025-11-23 19:12:27 +00:00
0a02f1db14 feat: migrate to UV package manager and enhance production config
- Replace pip with UV for faster dependency installation
- Switch base image from python:3.11-slim to debian:bookworm-slim
- Add SECURE_PROXY_SSL_HEADER for production SSL proxy support
- Optimize Docker layer caching by copying dependency files first
- Move database migration to build time for faster container startup
- Enhance Gunicorn logging with access and error log streams
- Update dependency management from requirements.txt to pyproject.toml

These changes improve build performance, production security, and
container startup time while modernizing the dependency management
workflow.
2025-11-23 18:36:23 +00:00
98962caafb chore: configure for local development environment
- Set ALLOWED_HOSTS to accept all hosts for easier local testing
- Update Docker port from 8080 to 8000 (Django default)
- Adjust Gunicorn binding to match new port configuration

This simplifies local development setup by using standard Django
conventions and removing host restrictions. The previous specific
host configuration can be restored for production deployment.
2025-11-23 18:26:44 +00:00
9a84e253f1 chore(config): update ALLOWED_HOSTS with new sslip.io domain
- Replace old sslip.io subdomain with new one (r0g84wkoc4cwoo0gckss88ow)
- Remove redundant IP address entries (72.61.138.80, 127.0.0.1)
- Keep localhost for local development

This updates the Django allowed hosts configuration to use the new
SSL.io subdomain while simplifying the host list by removing
redundant entries already covered by localhost.
2025-11-23 17:11:35 +00:00
1da5cd76e5 chore: update project dependencies
Update requirements.txt with modified package versions or new dependencies. The specific changes are not visible due to file encoding, but this updates the project's dependency specifications.
2025-11-23 17:05:10 +00:00
265dd9b57a chore(database): switch from SQLite to PostgreSQL
Replace SQLite database configuration with PostgreSQL configuration
that uses environment variables for connection settings. This enables
production-ready database deployment with proper credentials management
through environment variables (POSTGRES_DB, POSTGRES_USER,
POSTGRES_PASSWORD, POSTGRES_HOST, POSTGRES_PORT).
2025-11-23 15:41:52 +00:00
22ecb9a611 config: switch to SQLite database and change application port to 8080
- Replace PostgreSQL with SQLite as default database backend
- Comment out PostgreSQL configuration for potential future use
- Update Docker exposed port from 8000 to 8080
- Update Gunicorn bind address to match new port

This simplifies the deployment setup by removing the PostgreSQL
dependency and aligns the application port with common alternatives
to port 8000.
2025-11-23 15:40:46 +00:00
ac867f67fc build: change application port from 8081 to 8000
Update Dockerfile to use port 8000 instead of 8081 for the Django
application. This change affects both the EXPOSE directive and the
Gunicorn binding configuration to standardize on the conventional
default port for web applications.
2025-11-23 14:42:45 +00:00
af4570d6d2 chore(docker): change application port from 8080 to 8081
Update the Dockerfile to use port 8081 instead of 8080 for the application.
This includes:
- Modified EXPOSE directive to port 8081
- Updated Gunicorn bind address to 0.0.0.0:8081

Ensures consistency between the exposed port and the actual port the
application binds to when running inside the container.
2025-11-23 14:06:30 +00:00
36b5bb14b3 chore(docker): change application port from 8000 to 8080
Update Dockerfile to expose and bind Gunicorn to port 8080 instead of 8000. This aligns the container port configuration with the expected deployment environment requirements.

Changes:
- Update EXPOSE directive to port 8080
- Update Gunicorn bind address to 0.0.0.0:8080
2025-11-23 14:02:30 +00:00
4fdc7c35ee feat: add user management endpoints and update appointment model
Add comprehensive API documentation for user management endpoints including profile updates, user listing, and admin user management features. Update appointment model to include additional status options (completed, cancelled) and add max_length constraint to email field. Change appointment creation endpoint to require user authentication instead of being public.

Changes:
- Add API docs for update_profile, get_profile, all-users endpoints
- Add API docs for activate-deactivate-user and delete-user admin endpoints
- Update appointment creation to require authentication
- Add 'completed' and 'cancelled' status options to Appointment model
- Add max_length constraint to EncryptedEmailField
- Regenerate initial migration with updated model definitions
2025-11-23 13:55:04 +00:00
4acd78988e refactor(api): replace hardcoded URLs with dynamic URL generation
Replace hardcoded localhost URLs (http://127.0.0.1:8000) in API root
endpoint documentation with request.build_absolute_uri() calls. This
makes the API documentation URLs environment-agnostic and ensures they
reflect the actual domain/host being used to access the API, improving
portability across development, staging, and production environments.
2025-11-23 12:20:05 +00:00
c5f94d254e Merge pull request 'config: switch database backend from SQLite to PostgreSQL' (#8) from feature/meetings into main
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/8
2025-11-23 00:38:21 +00:00
a6ae78644d config: switch database backend from SQLite to PostgreSQL
Replace SQLite with PostgreSQL as the default database backend.
Database connection settings are now configured via environment
variables (POSTGRES_DB, POSTGRES_USER, POSTGRES_PASSWORD,
POSTGRES_HOST, POSTGRES_PORT) for better scalability and
production readiness.
2025-11-23 00:36:34 +00:00
bac26a0487 Merge pull request 'feature/meetings' (#7) from feature/meetings into main
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/7
2025-11-23 00:28:30 +00:00
d670baf594 refactor(email): improve email service implementation and templates
- Remove strip_tags usage and use explicit fallback text for HTML emails
- Use named parameters in EmailMultiAlternatives for better clarity
- Add fail_silently=False to email.send() for explicit error handling
- Rename variables (html_content -> html_message, email_msg -> email)
- Remove action buttons from appointment email templates

These changes improve code readability and provide a clearer fallback
message for non-HTML email clients instead of relying on stripped HTML.
2025-11-23 00:27:44 +00:00
1fc91d5949 feat: enable meetings app and simplify development configuration
- Enable meetings app in INSTALLED_APPS and add URL routing
- Switch from PostgreSQL to SQLite for default database configuration
- Remove meetings directory from .gitignore
- Move API root endpoint from users app to main URL configuration
- Remove HIPAA-specific email and compliance settings (EMAIL_ENCRYPTION_KEY, HIPAA_EMAIL_CONFIG, BAA_VERIFICATION)
- Add SITE_NAME and ENCRYPTION_KEY environment variables
- Regenerate initial user migrations

These changes simplify the development setup by using SQLite as the default database and removing complex compliance configurations while enabling the core meetings functionality.
2025-11-23 00:19:26 +00:00
b85391d632 Merge pull request '##$$' (#6) from feature/authentication_and_authorization into main
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/6
2025-11-22 19:22:19 +00:00
8ddd6fe77f ##$$ 2025-11-22 19:21:47 +00:00
9ca7f43fdc Merge pull request 'Rendering with docker' (#5) from feature/authentication_and_authorization into main
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/5
2025-11-22 19:15:01 +00:00
472461b8b1 Rendering with docker 2025-11-22 19:13:34 +00:00
9f7d2ebe43 Merge pull request '$$#' (#4) from feature/authentication_and_authorization into main
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/4
2025-11-22 17:27:34 +00:00
6ea70ee669 $$# 2025-11-22 17:26:52 +00:00
55d6226d6a Merge pull request '#$$' (#3) from feature/authentication_and_authorization into main
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/3
2025-11-22 16:45:26 +00:00
7d22911646 #$$ 2025-11-22 16:44:53 +00:00
9e09fc2c30 Merge pull request 'feature/authentication_and_authorization' (#2) from feature/authentication_and_authorization into main
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/2
2025-11-22 16:10:32 +00:00
a1ece06118 $ 2025-11-22 16:07:29 +00:00
bc881c84f9 $ 2025-11-22 16:07:11 +00:00
9d9858ef69 Merge pull request 'feat: add HIPAA-compliant email and OTP authentication system' (#1) from main into feature/authentication_and_authorization
Reviewed-on: https://gitea.blackbusinesslabs.com/ATTUNE-HEART-THERAPY/alternative-backend-service/pulls/1
2025-11-22 02:23:15 +00:00
f06b5120e9 feat: add HIPAA-compliant email and OTP authentication system
Add comprehensive HIPAA compliance features and OTP-based authentication:

- Configure HIPAA email settings with AES-256 encryption standard
- Add secure portal URL and BAA verification configuration
- Implement OTP verification for user registration and password reset
- Add user model fields for email verification and password reset OTPs
- Configure templates directory in Django settings
- Add authentication flow endpoints with detailed documentation
- Update dependencies to support new security features
- Reorganize .gitignore for better structure

These changes ensure HIPAA compliance for healthcare data handling
with 6-year audit retention, secure email communications, and
multi-factor authentication capabilities.
2025-11-22 02:19:44 +00:00
c2015d5ad0 Implement user model with custom user manager and update admin serializers 2025-11-13 00:52:34 +00:00
b966bfd190 Add initial Django project structure with user authentication and profile management 2025-11-12 11:51:27 +00:00