SDEverse is an open-source collaborative platform designed to help Software Development Engineers master Data Structures and Algorithms (DSA). Built with modern web technologies, it provides an interactive learning environment with comprehensive resources, community-driven content, and practical coding implementations.
Built for developers, students, competitive programmers, and anyone preparing for technical interviews.
- Interactive Learning - Comprehensive DSA topics with visual explanations
- Multi-Language Support - Code implementations in C++, Python, Java, and JavaScript
- Community Contributions - User-driven content creation and review system
- Real-time Discussions - Comment system for collaborative learning
- Admin Dashboard - Content management and analytics
- Responsive Design - Seamless experience across all devices
- Modern UI/UX - Clean, intuitive interface with dark/light themes
- Comprehensive Algorithm Library - Sorting, searching, graph algorithms, dynamic programming, and more
- Data Structure Implementations - Arrays, linked lists, trees, graphs, heaps, hash tables, etc.
- Multi-Language Code Samples - View implementations in your preferred programming language
- Complexity Analysis - Time and space complexity for each algorithm and operation
- Real-world Applications - Practical use cases and problem-solving examples
- Visual Explanations - Step-by-step algorithm visualizations
- Proposal System - Submit new algorithms and data structures for community review
- Comment Discussions - Engage with other learners on specific topics
- User Profiles - Track contributions and learning progress
- Review Workflow - Community-moderated content approval process
- Feedback System - Help improve the platform with suggestions
- Advanced Search - Find algorithms and data structures quickly
- Category Organization - Content organized by type and difficulty
- Responsive Design - Works perfectly on desktop, tablet, and mobile
- Performance Optimized - Fast loading times and smooth interactions
- SEO Friendly - Optimized for search engine discoverability
- Content Management - Admin panel for managing algorithms and data structures
- User Management - User roles and permissions system
- Analytics Dashboard - Track platform usage and engagement
- Notification System - Keep users informed about updates and activities
Important for Contributors: Understanding our tech stack helps you get started quickly!
- Framework: React 19.1.0 with Vite
- State Management: Redux Toolkit with RTK Query
- Styling: Tailwind CSS 4.1.14
- Animations: Framer Motion 12.23.22
- Code Editor: Monaco Editor (VS Code editor)
- Markdown: React Markdown with syntax highlighting
- Math Rendering: KaTeX for mathematical expressions
- Icons: Lucide React, React Icons
- Charts: Recharts for data visualizations
- Runtime: Node.js with Express.js 5.1.0
- Database: MongoDB with Mongoose ODM
- Authentication: JWT with bcryptjs
- Validation: Express Validator
- CORS: Cross-origin resource sharing
- Environment: dotenv for configuration
- Build Tool: Vite for fast development and building
- Linting: ESLint for code quality
- Package Manager: npm
- Version Control: Git & GitHub
- Deployment: Vercel (frontend), Railway/Heroku (backend)
| Library | Purpose | Version |
|---|---|---|
react |
Frontend framework | ^19.1.0 |
@reduxjs/toolkit |
State management | ^2.9.0 |
express |
Backend framework | ^5.1.0 |
mongoose |
MongoDB ODM | ^8.19.1 |
@monaco-editor/react |
Code editor | ^4.7.0 |
tailwindcss |
CSS framework | ^4.1.14 |
framer-motion |
Animations | ^12.23.22 |
react-markdown |
Markdown rendering | ^10.1.0 |
┌─────────────────────────────────────┐
│ React Frontend │
│ │
│ ┌──────────────┐ ┌──────────────┐ │
│ │ Pages │ │ Components │ │
│ │ │ │ │ │
│ └──────┬───────┘ └──────┬───────┘ │
│ │ │ │
│ ┌──────┴─────────────────┴───────┐ │
│ │ Redux Store (RTK) │ │
│ └────────────────┬───────────────┘ │
└───────────────────┼──────────────────┘
│
│ REST API (HTTPS)
│ JWT Authentication
│
┌───────────────────▼──────────────────┐
│ Express.js Backend │
│ │
│ ┌────────────┐ ┌──────────────┐ │
│ │ Routes │ │ Controllers │ │
│ │ │──▶│ │ │
│ └────────────┘ └──────┬───────┘ │
│ │ │
│ ┌────────────┐ │ │
│ │Middleware │ │ │
│ │(Auth, CORS)│ │ │
│ └────────────┘ │ │
└─────────────────────────┼───────────┘
│
▼
┌─────────────────────────┐
│ MongoDB Database │
│ │
│ • Users │
│ • Algorithms │
│ • DataStructures │
│ • Proposals │
│ • Comments │
│ • Notifications │
│ • Feedback │
└─────────────────────────┘
Visit the Live Platform 🌟
- Visit SDEverse
- Create an account or login
- Explore algorithms and data structures
- Join discussions and contribute content
Prerequisites
- Node.js (v18 or higher)
- MongoDB (local or cloud instance)
- Git
Backend Setup
# Clone repository
git clone https://github.com/Harshdev625/SDEverse.git
cd SDEverse/server
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env
# Edit .env and set:
# - MONGO_URI=mongodb://localhost:27017/sdeverse
# - JWT_SECRET=your-secret-key
# - PORT=5000
# - CLOUDINARY_CLOUD_NAME=
# - CLOUDINARY_API_KEY=
# - CLOUDINARY_API_SECRET=
# Start development server
npm run devFrontend Setup
# Navigate to client directory
cd ../client
# Install dependencies
npm install
# Configure environment variables
cp .env.example .env
# Edit .env and set:
# - VITE_API_BASE_URL=http://localhost:5000/api
# Start development server
npm run devThe application will be available at:
- Frontend:
http://localhost:5173 - Backend:
http://localhost:5000
SDEverse/
├── client/ # React frontend
│ ├── public/ # Static assets
│ ├── src/
│ │ ├── components/ # Reusable components
│ │ │ ├── code/ # Code display components
│ │ │ ├── forms/ # Form components
│ │ │ └── ui/ # UI components
│ │ ├── features/ # Redux slices & API
│ │ │ ├── algorithm/ # Algorithm management
│ │ │ ├── auth/ # Authentication
│ │ │ ├── user/ # User management
│ │ │ └── ... # Other features
│ │ ├── pages/ # Page components
│ │ ├── utils/ # Utility functions
│ │ └── App.jsx # Main app component
│ ├── package.json
│ └── vite.config.js # Vite configuration
│
├── server/ # Node.js backend
│ ├── controllers/ # Request handlers
│ ├── middleware/ # Express middleware
│ ├── models/ # MongoDB schemas
│ ├── routes/ # API routes
│ ├── utils/ # Utility functions
│ ├── server.js # Server entry point
│ └── package.json
│
├── docs/ # Documentation
├── .github/ # GitHub templates & workflows
├── README.md # This file
├── LICENSE # MIT license
├── CONTRIBUTING.md # Contribution guidelines
└── CODE_OF_CONDUCT.md # Community guidelines
POST /api/auth/register- Register new userPOST /api/auth/login- User loginGET /api/auth/profile- Get user profilePUT /api/auth/profile- Update user profile
GET /api/algorithms- Get all algorithmsGET /api/algorithms/:id- Get algorithm by IDPOST /api/algorithms- Create new algorithm (admin)PUT /api/algorithms/:id- Update algorithm (admin)DELETE /api/algorithms/:id- Delete algorithm (admin)
GET /api/datastructures- Get all data structuresGET /api/datastructures/:id- Get data structure by IDPOST /api/datastructures- Create new data structure (admin)PUT /api/datastructures/:id- Update data structure (admin)DELETE /api/datastructures/:id- Delete data structure (admin)
GET /api/proposals- Get all proposalsPOST /api/proposals- Submit new proposalPUT /api/proposals/:id- Update proposal statusDELETE /api/proposals/:id- Delete proposal
GET /api/comments/:type/:id- Get comments for contentPOST /api/comments- Add new commentDELETE /api/comments/:id- Delete comment
We welcome contributions from the community! Here's how you can help make SDEverse better:
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Make your changes and test thoroughly
- Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Read CONTRIBUTING.md for detailed guidelines
- Follow our Code of Conduct
- Check existing issues before creating new ones
- Include screenshots for UI changes
- Test your changes locally
- Write clear commit messages
- 🐛 Bug fixes - Help us squash bugs
- ✨ New features - Add cool functionality
- 📚 Documentation - Improve guides and docs
- 🎨 UI/UX - Make it more beautiful and user-friendly
- 🧪 Testing - Help us maintain quality
- 📝 Content - Add new algorithms and data structures
- 🌐 Translations - Help make it accessible globally
We're participating in Hacktoberfest 2025! Look for issues labeled:
hacktoberfestgood first issuehelp wantedbeginner-friendly
- good first issue - Perfect for newcomers
- bug - Something isn't working
- enhancement - New feature or request
- documentation - Improvements to docs
- frontend - React/UI related
- backend - Node.js/API related
- help wanted - Extra attention needed
Security is a top priority. Current measures:
- Authentication: JWT-based secure authentication
- Password Security: bcrypt hashing with salt
- Input Validation: Comprehensive validation on all inputs
- CORS: Properly configured cross-origin policies
- Rate Limiting: Protection against abuse
- SQL Injection: MongoDB ODM prevents injection attacks
Found a security issue? Please report it privately through our Security Policy.
SDEverse respects your privacy:
- Minimal Data Collection: Only necessary information
- No Tracking: No third-party analytics or ads
- User Control: Users control their data and contributions
- Secure Storage: All data encrypted and securely stored
- Transparent Policies: Clear privacy policy available
This project is licensed under the MIT License - see the LICENSE file for details.
- Documentation: This README + inline code comments
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- React Team - Amazing frontend framework
- Express.js - Fast, unopinionated web framework
- MongoDB - Flexible document database
- Tailwind CSS - Utility-first CSS framework
- Monaco Editor - VS Code editor for the web
- All Contributors - Thank you for making this project better!
Thanks to all the amazing people who have contributed to SDEverse:
Built with ❤️ by the open-source community