Modern frontend application for the Bitwise learning platform, built with React 19, TypeScript, and Vite.
Bitwise UI is a high-performance, type-safe web application that provides an interactive learning experience for computer science education. The application features a modern design system, responsive layouts, and advanced state management to deliver seamless educational content, assessments, and progress tracking.
- Interactive Learning Interface - Engaging lessons with syntax highlighting and code examples
- Adaptive Assessment System - Dynamic quizzes and evaluations with instant feedback
- Progress Tracking Dashboard - Visual analytics and progress monitoring with charts
- Binary/Decimal Calculator - Interactive tools for number system conversions
- Circuit Simulator - Visual circuit design and simulation tools
- AI-Powered Assistance - Integrated AI chatbot for learning support
- Bookmark Management - Save and organize favorite lessons and topics
- Responsive Design - Mobile-first approach with seamless cross-device experience
- Dark Mode Support - Theme switching with next-themes
- Authentication - Secure user authentication with Supabase
- React 19 - Latest version with concurrent features
- TypeScript 5.8 - Strongly typed development
- Vite 6 - Next-generation frontend build tool
- TanStack Router - Type-safe routing with file-based routing
- TanStack Query - Powerful asynchronous state management
- Zustand - Lightweight state management solution
- Tailwind CSS 4 - Utility-first CSS framework
- Shadcn/UI - Re-usable component library
- Radix UI - Accessible component primitives
- Lucide React - Beautiful icon set
- Motion (Framer Motion) - Animation library
- Material-UI - Additional UI components
- React Hook Form - Performant form handling
- Zod - TypeScript-first schema validation
- Formik - Form management utilities
- Recharts - Composable charting library
- Lottie React - After Effects animations
- React Confetti - Celebration animations
- Canvas Confetti - Canvas-based confetti effects
- COBE - WebGL globe visualization
- Axios - HTTP client for API calls
- Supabase - Backend-as-a-Service for authentication and database
- MathLive - Math equation editor
- Intro.js - User onboarding and tutorials
- React Syntax Highlighter - Code syntax highlighting
- ESLint - Code linting with TypeScript support
- Prettier - Code formatting
- Kubb - OpenAPI code generation
- dotenv - Environment variable management
Before running the application, ensure you have the following installed:
- Node.js (v18 or higher)
- npm or yarn
- Git
git clone <repository-url>
cd bitwise-uinpm installCreate a .env file in the root directory with the following variables:
# API Configuration
VITE_API_URL="http://localhost:3000"
# Supabase Configuration
VITE_SUPABASE_URL="your-supabase-url"
VITE_SUPABASE_ANON_KEY="your-supabase-anon-key"
# Feature Flags (optional)
VITE_ENABLE_DEVTOOLS="true"npm run devThe application will start at http://localhost:5173.
npm run buildnpm run previewnpm run dev # Start development server with hot reload
npm run preview # Preview production build locallynpm run build # Build application for production
npm run build:ci # Build with clean install for CI/CD
npm run render-build # Build script for Render deployment
npm run start # Serve production build on port 3000npm run lint # Lint and auto-fix code issuesbitwise-ui/
├── public/
│ ├── _redirects # Deployment redirects
│ └── site.webmanifest # PWA manifest
├── src/
│ ├── assets/ # Static assets
│ │ ├── animations/ # Lottie animations
│ │ ├── audio/ # Audio files
│ │ ├── icons/ # Icon assets
│ │ └── photos/ # Images
│ ├── components/ # React components
│ │ ├── ui/ # Shadcn/UI components
│ │ └── *.tsx # Feature components
│ ├── constants/ # Application constants
│ ├── contexts/ # React contexts
│ ├── hooks/ # Custom React hooks
│ ├── lib/ # Library configurations
│ │ └── styles/ # Global styles
│ ├── routes/ # Route components
│ ├── services/ # API services
│ ├── tools/ # Utility tools
│ │ └── simulator/ # Circuit simulator
│ ├── types/ # TypeScript definitions
│ ├── utils/ # Utility functions
│ ├── App.tsx # Root component
│ ├── main.tsx # Application entry point
│ └── routeTree.gen.ts # Generated route tree
├── components.json # Shadcn/UI config
├── Dockerfile # Docker configuration
├── eslint.config.js # ESLint configuration
├── package.json # Dependencies and scripts
├── tsconfig.json # TypeScript configuration
└── vite.config.ts # Vite configuration
components/- Reusable UI components and feature-specific componentsroutes/- Page-level components mapped to routesservices/- API client services and data fetching logichooks/- Custom React hooks for shared logiccontexts/- React context providers for global statetools/- Interactive tools like calculators and simulatorsutils/- Helper functions and utilitiestypes/- TypeScript type definitions and interfaces
| Variable | Description | Required |
|---|---|---|
VITE_API_URL |
Backend API base URL | Yes |
VITE_SUPABASE_URL |
Supabase project URL | Yes |
VITE_SUPABASE_ANON_KEY |
Supabase anonymous key | Yes |
VITE_ENABLE_DEVTOOLS |
Enable development tools | No |
The application is optimized for production deployment with:
- Code splitting and lazy loading
- Minification and compression
- Tree shaking for minimal bundle size
- Asset optimization
- Environment-specific builds
# Build Docker image
docker build -t bitwise-ui .
# Run container
docker run -p 3000:3000 bitwise-ui- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Fork the repository
- Create a feature branch (
git checkout -b feature/your-feature) - Commit your changes (
git commit -m 'Add some feature') - Push to the branch (
git push origin feature/your-feature) - Open a Pull Request
This project is private and unlicensed.