Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

9 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

DivergeX - Neurodivergent Assistive Platform

An AI-powered platform designed to support neurodivergent individuals with communication, learning, and planning tools. Built with modern web technologies and a focus on accessibility-first design.

🌐 Live Demo: https://diverge-x-client.vercel.app

Features

Communication Tools

  • Tone Analyzer: Understand emotional tone and social context in messages
  • Message Formatter: Improve message clarity and appropriateness
  • Conversation Simulator: Practice social interactions in safe scenarios

Learning Assistance

  • Text Simplifier: Adapt complex content to your reading level
  • Visual Summaries: Generate mind maps and structured outlines
  • Key Points Extraction: Identify main concepts quickly

Planning & Organization

  • Task Manager: Organize tasks with energy-level awareness
  • Timeline Builder: Visual scheduling with reminders
  • Executive Function Tools: Support for working memory and task initiation

Accessibility Features

  • WCAG 2.1 AA compliant
  • Multiple theme options (Light, Dark, High Contrast)
  • Dyslexia-friendly fonts
  • Adjustable text size (80%-200%)
  • Reduced motion support
  • Screen reader optimizations

Tech Stack

Frontend:

  • React 19 with Vite
  • TailwindCSS (Modern utility-first styling)
  • Zustand (Lightweight state management)
  • React Router v6
  • Axios (HTTP client)

Backend:

  • Node.js with Express 5
  • Drizzle ORM (Type-safe database queries)
  • Neon Database (Serverless PostgreSQL)
  • Google Gemini AI (Advanced language processing)
  • JWT Authentication
  • Helmet & CORS (Security)

Deployment:

  • Frontend: Vercel
  • Backend: Vercel Serverless Functions
  • Database: Neon (Serverless PostgreSQL)

Setup Instructions

Prerequisites

  • Node.js 18+ installed
  • Neon Database account
  • Google Gemini API key

Backend Setup

  1. Navigate to server directory:
cd server
  1. Install dependencies (already done):
npm install
  1. Configure environment variables: Edit server/.env with your credentials:
DATABASE_URL=your_neon_database_url
JWT_SECRET=your_secret_key
GEMINI_API_KEY=your_api_key
PORT=3000
CORS_ORIGIN=http://localhost:5173
  1. Run database migrations:
npx drizzle-kit push:pg
  1. Start the server:
npm run dev

Server will run on http://localhost:3000

Frontend Setup

  1. Navigate to client directory:
cd client
  1. Install dependencies:
npm install
  1. Configure environment variables:

For production (using deployed server), edit client/.env:

VITE_API_URL=https://diverge-x-server.vercel.app/api
VITE_APP_NAME=DivergeX

For local development, create client/.env.local:

VITE_API_URL=http://localhost:3000/api
VITE_APP_NAME=DivergeX

Note: .env.local takes precedence over .env and is git-ignored for local development.

  1. Start the development server:
npm run dev

Frontend will run on http://localhost:5173

Usage

  1. Register: Create a new account at /register
  2. Login: Access your account at /login
  3. Dashboard: View all available tools
  4. Customize: Adjust accessibility settings in /settings to your preferences
  5. Explore Tools:
    • Communication: Analyze tone, format messages, practice conversations
    • Learning: Simplify complex text, generate visual summaries
    • Planning: Manage tasks with energy-level awareness

Design Philosophy

DivergeX features a modern, clean design inspired by contemporary fintech applications:

  • Soft, rounded corners (rounded-3xl) for a friendly, approachable feel
  • Neutral color palette with subtle accents for reduced visual stress
  • Generous spacing and clear typography for improved readability
  • Minimal animations with reduced motion support
  • High contrast options for better visibility

API Endpoints

Authentication

  • POST /api/auth/register - Create account
  • POST /api/auth/login - Login
  • GET /api/auth/profile - Get user profile
  • PUT /api/auth/profile - Update profile

Communication

  • POST /api/communication/analyze-tone - Analyze message tone
  • POST /api/communication/format-message - Format message
  • POST /api/communication/simulate-conversation - Practice conversation

Learning

  • POST /api/learning/process-text - Simplify text
  • POST /api/learning/generate-visual-summary - Create visual summary
  • GET /api/learning/learning-history - Get history

Planning

  • GET /api/planning/tasks - Get all tasks
  • POST /api/planning/tasks - Create task
  • PUT /api/planning/tasks/:id - Update task
  • DELETE /api/planning/tasks/:id - Delete task

Accessibility

  • GET /api/accessibility/settings - Get settings
  • PUT /api/accessibility/settings - Update settings

Project Structure

divergex/
β”œβ”€β”€ client/                          # Frontend React app
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ communication/      # Communication tool components
β”‚   β”‚   β”‚   β”œβ”€β”€ learning/           # Learning tool components
β”‚   β”‚   β”‚   β”œβ”€β”€ planning/           # Planning tool components
β”‚   β”‚   β”‚   β”œβ”€β”€ layout/             # Header, navigation, etc.
β”‚   β”‚   β”‚   └── shared/             # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/                  # Page components
β”‚   β”‚   β”œβ”€β”€ store/                  # Zustand state stores
β”‚   β”‚   β”œβ”€β”€ services/               # API service layer
β”‚   β”‚   β”œβ”€β”€ App.jsx                 # Main app component
β”‚   β”‚   └── index.css               # Global styles
β”‚   β”œβ”€β”€ .env                        # Production environment variables
β”‚   β”œβ”€β”€ .env.local                  # Local development variables (git-ignored)
β”‚   └── package.json
β”œβ”€β”€ server/                          # Backend API
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ db/
β”‚   β”‚   β”‚   β”œβ”€β”€ schema.js           # Drizzle database schema
β”‚   β”‚   β”‚   └── index.js            # Database connection
β”‚   β”‚   β”œβ”€β”€ routes/                 # API route handlers
β”‚   β”‚   β”œβ”€β”€ services/
β”‚   β”‚   β”‚   └── ai.service.js       # Google Gemini AI integration
β”‚   β”‚   β”œβ”€β”€ middleware/             # Auth & validation middleware
β”‚   β”‚   └── server.js               # Express server setup
β”‚   β”œβ”€β”€ .env                        # Server environment variables
β”‚   β”œβ”€β”€ vercel.json                 # Vercel deployment config
β”‚   └── package.json
└── README.md

Security

  • Password Security: Bcrypt hashing with salt rounds
  • Authentication: JWT token-based auth with secure storage
  • Rate Limiting: Express rate limiter (100 requests per 15 minutes)
  • CORS Protection: Configured for localhost and production domains
  • Security Headers: Helmet middleware for HTTP security
  • Input Validation: Zod schema validation on all endpoints
  • Environment Variables: Sensitive data stored in .env files (git-ignored)

Accessibility Compliance

DivergeX follows WCAG 2.1 AA guidelines and neurodiversity-focused design principles:

Visual Accessibility:

  • High contrast mode option
  • Adjustable font sizes (80%-200%)
  • Dyslexia-friendly font options (OpenDyslexic)
  • Color contrast ratios meeting AA standards
  • Multiple theme options (Light, Dark, High Contrast)

Motor Accessibility:

  • Full keyboard navigation support
  • Large, easy-to-click touch targets
  • Reduced motion option for animations
  • Focus indicators on all interactive elements

Cognitive Accessibility:

  • Clear, simple language
  • Consistent navigation patterns
  • Visual hierarchy and spacing
  • Energy-aware task planning
  • Customizable reading levels

Screen Reader Support:

  • Semantic HTML structure
  • ARIA labels and descriptions
  • Live regions for dynamic content
  • Skip navigation links

Development Tips

Running Locally:

  1. Start the backend server: cd server && npm run dev
  2. Start the frontend: cd client && npm run dev
  3. Ensure .env.local is configured for local API connection

Common Issues:

  • CORS errors: Make sure your local server is running and .env.local points to http://localhost:3000/api
  • Database errors: Run npx drizzle-kit push to sync schema changes
  • Build errors: Clear node_modules and reinstall dependencies

Deployment:

  • Frontend and backend are deployed separately on Vercel
  • Environment variables must be configured in Vercel dashboard
  • CORS is configured to allow both localhost and production domains

Contributing

This is a neurodiversity-focused project. Contributions that improve accessibility and user experience are welcome.

Guidelines:

  • Follow existing code style and patterns
  • Test accessibility features thoroughly
  • Consider neurodivergent user needs in all changes
  • Update documentation for new features

Acknowledgments

Built with consideration for the neurodivergent community. Special thanks to all contributors and users who provide feedback to make DivergeX more accessible and useful.

About

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages