A modern sorting algorithms learning platform with dark theme and neon-style design, providing interactive algorithm visualization and rich practice questions.
- Eight Sorting Algorithms: Bubble, Selection, Insertion, Shell, Merge, Quick, Heap, and Counting Sort
- Interactive Visualization: Real-time animation showing algorithm execution process, with step-by-step, auto-play, and custom input support
- Multi-language Support: Code examples in C, C++, Python, Java, JavaScript, TypeScript, C#
- User System: Email registration, verification code login, learning progress tracking
- Question Bank System: Practice questions categorized by difficulty with automatic wrong answer book functionality
- Dark Theme: Dark background with neon colors for a futuristic look
- Neon Effects: Neon light glow effects to enhance visual experience
- Responsive Design: Perfectly adapted for desktop and mobile devices
- Smooth Animations: Framer Motion-driven smooth transition effects
- Algorithm Details: Time complexity, space complexity, and stability analysis
- Visualization Controls: Play, pause, step, reset, custom array
- Progress Tracking: Learning statistics, accuracy rate, completed questions
- Wrong Answer Book: Automatically saves wrong answers for review
- React 18 + TypeScript
- Vite - Fast build tool
- Tailwind CSS - Atomic CSS framework
- React Router - Route management
- Framer Motion - Animation library
- Lucide React - Icon library
- Recharts - Chart library
- Node.js + Express + TypeScript
- SQLite - Lightweight database
- JWT - Authentication
- Nodemailer - Email service
- bcryptjs - Password encryption
- Helmet - Security middleware
- Node.js >= 16.0.0
- npm >= 8.0.0
- Clone Project
git clone <repository-url>
cd sorting-algorithms-platform- Install Dependencies
# Install root dependencies
npm install
# Install frontend dependencies
cd client
npm install
cd ..
# Install backend dependencies
cd server
npm install
cd ..- Configure Environment Variables
# Copy environment variable template
cp server/env.example server/.env
# Edit environment variables
nano server/.env- Start Development Server
# Start backend server
cd server
npm run dev
# Open new terminal, start frontend server
cd client
npm run dev- Access Application
- Frontend: http://localhost:3000
- Backend: http://localhost:5000
- Visit the Algorithm List page
- Select an interesting sorting algorithm
- View algorithm details and complexity analysis
- Use interactive visualization tools to understand the algorithm process
- View multi-language code implementations
- Visit the Question List page
- Filter questions by difficulty or algorithm type
- Submit answers and get instant feedback
- Review wrong answers in the wrong answer book
- Register account using email
- Login with verification code
- View learning progress and statistics
- Manage personal profile
# Run deployment script
./deploy.sh- Build frontend project
cd client
npm run build- Deploy to platform
- Vercel: Connect GitHub repository for automatic deployment
- Netlify: Upload
distfolder
- Configure environment variables
- Connect GitHub repository
- Set build command:
npm install && npm run build - Set start command:
npm start
PORT=5000
JWT_SECRET=your-jwt-secret
EMAIL_SERVICE=gmail
EMAIL_USER=your-email@gmail.com
EMAIL_PASS=your-app-password
CLIENT_URL=http://localhost:3000front_end/
βββ client/ # Frontend application
β βββ src/
β β βββ components/ # React components
β β βββ pages/ # Page components
β β βββ contexts/ # React Context
β β βββ index.css # Global styles
β βββ package.json
β βββ vite.config.ts
βββ server/ # Backend application
β βββ src/
β β βββ routes/ # API routes
β β βββ database/ # Database configuration
β β βββ index.ts # Server entry
β βββ package.json
β βββ tsconfig.json
βββ package.json # Root configuration
βββ deploy.sh # Deployment script
βββ README.md # Project description
- Dark background:
#020617(dark-950) - Card background:
rgba(15, 23, 42, 0.8)(dark-900/80) - Glass effect:
backdrop-blur-sm
- Primary color:
#00ffff(neon-blue) - Success color:
#00ff41(neon-green) - Warning color:
#ffff00(neon-yellow) - Error color:
#ff00ff(neon-pink) - Purple:
#8a2be2(neon-purple)
- Glow animation:
animate-glow - Neon pulse:
animate-neon-pulse - Float effect:
animate-float - Gradient transition:
transition-all duration-300
- Fork the project
- Create feature branch:
git checkout -b feature/AmazingFeature - Commit changes:
git commit -m 'Add some AmazingFeature' - Push branch:
git push origin feature/AmazingFeature - Submit Pull Request
This project is licensed under the MIT License - see the LICENSE file for details
- React - Frontend framework
- Tailwind CSS - CSS framework
- Vite - Build tool
- Express - Backend framework
- SQLite - Database
π Enjoy learning sorting algorithms!