A comprehensive web application providing educational guidance on dermatological conditions, skin health, and medical document analysis.
- Contextual responses about common skin conditions (acne, psoriasis, eczema, moles)
- Professional dermatological guidance and education
- Proper medical disclaimers and referral recommendations
- Conversation history saved to database
- Comprehensive skin condition evaluation guidance
- ABCDE melanoma screening education
- Professional referral recommendations
- File upload with drag-and-drop support
- PDF document analysis guidance
- Medical report interpretation assistance
- Key findings and recommendation identification
- Educational content about medical terminology
- Secure authentication with Supabase
- User profiles and personalization
- Chat history persistence
- Row-level security (RLS) implementation
- Frontend: React 18, TypeScript, Tailwind CSS
- Backend: Supabase (Database, Auth, Storage)
- Build Tool: Vite
- UI Components: Custom components with Lucide React icons
- Animations: Framer Motion
- State Management: Zustand
- Node.js 18+
- npm 9+
- Supabase account
-
Clone the repository
git clone https://github.com/AMANSINGH1674/DermaSenseAI.git cd DermaSenseAI -
Install dependencies
npm install
-
Configure environment variables Create a
.env.localfile:VITE_SUPABASE_URL=your-supabase-project-url VITE_SUPABASE_ANON_KEY=your-supabase-anon-key
-
Set up Supabase database Run the SQL files in your Supabase SQL Editor:
# Create user profiles table cat safe-create-profiles-table.sql | supabase db sql # Create chat messages table cat create-chat-tables.sql | supabase db sql
-
Start the development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
CREATE TABLE profiles (
id uuid PRIMARY KEY REFERENCES auth.users,
email text,
full_name text,
avatar_url text,
created_at timestamptz DEFAULT now()
);CREATE TABLE chat_messages (
id uuid PRIMARY KEY DEFAULT gen_random_uuid(),
user_id uuid REFERENCES profiles(id),
role text CHECK (role IN ('user', 'assistant', 'system')),
content text NOT NULL,
image_url text,
attachment_url text,
attachment_type text CHECK (attachment_type IN ('image', 'pdf')),
created_at timestamptz DEFAULT now()
);Ask questions about dermatological topics:
- "What are the signs of melanoma?"
- "Tell me about acne treatment options"
- "How do I examine a suspicious mole?"
- "What causes psoriasis flare-ups?"
- Click the camera icon or upload button
- Select a dermatological image
- Receive comprehensive analysis guidance
- Get professional referral recommendations
- Upload medical documents or reports
- Receive structured review guidance
- Get key findings explanations
- Understand next steps and follow-up care
npm run dev- Start development servernpm run build- Build for productionnpm run preview- Preview production buildnpm run lint- Run ESLint
DermaSenseAI/
βββ public/
β βββ favicon.svg
βββ src/
β βββ components/ # React components
β β βββ ChatInterface.tsx
β β βββ AuthProvider.tsx
β β βββ ...
β βββ lib/ # Utility libraries
β β βββ supabase.ts
β β βββ database.types.ts
β βββ pages/ # Page components
β β βββ DashboardPage.tsx
β β βββ LoginPage.tsx
β β βββ ...
β βββ services/ # Business logic
β β βββ medgemmaService.ts
β βββ store/ # State management
β β βββ authStore.ts
β βββ main.tsx
βββ .env.local # Environment variables
βββ package.json
- Create a new Supabase project
- Get your project URL and anon key from Settings β API
- Enable Row Level Security (RLS) on all tables
- Create the required database tables using provided SQL files
VITE_SUPABASE_URL=https://your-project.supabase.co
VITE_SUPABASE_ANON_KEY=your-anon-key-hereMedical Disclaimer: This application provides educational information only and is not intended for medical diagnosis or treatment. Always consult qualified healthcare professionals for medical concerns.
Educational Purpose: All responses and guidance provided by the system are for educational purposes and should not replace professional medical advice.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If you encounter any issues or have questions:
- Check the TROUBLESHOOTING.md guide
- Search existing GitHub Issues
- Create a new issue with detailed information
- Built with React and modern web technologies
- Database and authentication powered by Supabase
- Medical guidance based on established dermatological practices
- UI/UX inspired by modern healthcare applications