Deakin University Capstone Project
⚠️ MEDICAL DISCLAIMER This application is a Proof of Concept (POC) designed for educational and informational purposes only. It uses Artificial Intelligence to provide preliminary analysis of skin conditions. It is NOT a diagnostic tool. Users must always consult a qualified medical professional for diagnosis and treatment.
DERMA (internally referred to as DermaAI) is a containerized web application designed to bridge the gap between patients and dermatologists. It allows users to upload images of skin lesions for instant, AI-driven preliminary analysis and facilitates connection with doctors for professional review.
- Patient Portal: Image upload, AI analysis (Google AI Studio/Gemini), chat interface, and "Find a Doctor" locator.
- Doctor Portal: Secure dashboard for triage, reviewing high-res patient images, and managing appointment requests.
- AI Engine: Modular AI architecture (currently wrapping Google AI Studio/Gemini) with future-proofing for custom fine-tuned models.
- AGENTS.md: Master context for AI Agents (Mission, Rules, Tech Stack).
- docs/SRS.md: Software Requirements Specification.
- docs/USER_GUIDE.md: Detailed Patient & Doctor usage guide.
- docs/DEVELOPMENT_PROCESS_REPORT.md: Implementation & Process Review.
- docs/CLINIC.md: Clinic Branding & Style Guide.
- docs/TESTING.md: Testing Strategy and Commands.
- docs/OPERATIONS.md: Operations runbook & Troubleshooting.
- TASKS.md: Active Task Checklist.
- Framework: React 19 (Vite)
- Styling: Tailwind CSS v4
- Routing: React Router v7
- Framework: FastAPI (Python 3.10+)
- Database: PostgreSQL (via Docker)
- ORM: SQLAlchemy + Alembic (Migrations)
- Auth: JWT-based Authentication (python-jose, bcrypt) with RBAC
- Containerization: Docker & Docker Compose
- Version Control: GitHub
Follow these steps to set up and run the DermaAI application locally.
- Python (3.10+)
- Node.js (v16+)
- Docker Desktop (Running)
- Google Gemini API Key (Get one here)
git clone https://github.com/InnovAIte-Deakin/AI-Prototyping-Lab---Healthcare-Stream---Derma.git
cd AI-Prototyping-Lab---Healthcare-Stream---Derma The backend handles the API, Database, and AI logic.
# 1. Navigate to backend
cd backend
# 2. Create and Activate Virtual Environment
# Windows:
python -m venv venv
.\venv\Scripts\Activate
# Mac/Linux:
python3 -m venv venv
source venv/bin/activate
# 3. Install Dependencies
pip install -r requirements.txt
# 4. Configure Environment
# Create a .env file in the /backend folder with the following:
# DATABASE_URL=postgresql://dermaai:dermaai@localhost:5432/dermaai
# GOOGLE_API_KEY=your_actual_api_key_here
# 5. Start Database (Docker)
docker-compose up -d
# 6. Setup Database
alembic upgrade head
python -m app.seed_doctors
python -m app.seed_admin
# 7. Run Server
uvicorn app.main:app --reloadBackend running at: http://localhost:8000 Health check: http://localhost:8000/health
Open a new terminal (keep backend running).
# 1. Navigate to frontend
cd frontend
# 2. Install Dependencies
npm install
# 3. Run Development Server
npm run devFrontend running at: http://localhost:5173
Open your browser to http://localhost:5173.
Test Credentials:
- Patient: Register a new account.
- Doctors:
alice@derma.com/password123(Seeseed_doctors.pyfor more). - Admin:
admin@derma.com/adminpass123(Runpython -m app.seed_adminto create. Env-configurable viaADMIN_EMAIL/ADMIN_PASSWORD).
We follow a strict "One Task = One Branch" policy.
- Pull Latest Main:
git checkout main && git pull origin main - Create Task Branch:
git checkout -b feat/task-name - Code & Commit:
git add . && git commit -m "feat: description" - Push:
git push origin feat/task-name - Pull Request: Open PR on GitHub.
skin-scope/
├── backend/ # FastAPI Application
│ ├── app/ # Source Code
│ │ ├── routes/ # API Endpoints
│ │ ├── services/ # Business Logic
│ │ └── models.py # DB Models
│ └── media/ # Uploaded Images
├── frontend/ # React Application
│ ├── src/ # Source Code
│ │ ├── pages/ # Views
│ │ └── components/ # UI Components
└── docs/ # Documentation