Skip to content

Collaborative platform to learn Data Structures & Algorithms with multi-language support, community contributions, and interactive visualizations.

License

Notifications You must be signed in to change notification settings

Harshdev625/SDEverse

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

SDEverse

SDEverse Logo

Collaborative Platform for Data Structures & Algorithms Learning

React Node.js Express.js MongoDB Vite Redux TailwindCSS JWT

Website Version License Issues Pull Requests Contributors PRs Welcome Hacktoberfest

Overview β€’ Features β€’ Quick Start β€’ Tech Stack β€’ Contributing β€’ Contributors


Overview

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.

Key Capabilities

  • 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

Features

Learning & Content

  • 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

Community & Collaboration

  • 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

Technical Features

  • 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

Administrative Tools

  • 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

Tech Stack

Important for Contributors: Understanding our tech stack helps you get started quickly!

Frontend

  • 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

Backend

  • 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

Development Tools

  • 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)

Key Libraries

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

Architecture Overview

                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                    β”‚         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             β”‚
                              β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Quick Start

For Users

Visit the Live Platform 🌟

  1. Visit SDEverse
  2. Create an account or login
  3. Explore algorithms and data structures
  4. Join discussions and contribute content

For Developers

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 dev

Frontend 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 dev

The application will be available at:

  • Frontend: http://localhost:5173
  • Backend: http://localhost:5000

πŸ“ Project Structure

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

πŸ“š Documentation

πŸ”Œ API Endpoints

πŸ” Authentication

  • POST /api/auth/register - Register new user
  • POST /api/auth/login - User login
  • GET /api/auth/profile - Get user profile
  • PUT /api/auth/profile - Update user profile

πŸ“Š Algorithms

  • GET /api/algorithms - Get all algorithms
  • GET /api/algorithms/:id - Get algorithm by ID
  • POST /api/algorithms - Create new algorithm (admin)
  • PUT /api/algorithms/:id - Update algorithm (admin)
  • DELETE /api/algorithms/:id - Delete algorithm (admin)

πŸ—οΈ Data Structures

  • GET /api/datastructures - Get all data structures
  • GET /api/datastructures/:id - Get data structure by ID
  • POST /api/datastructures - Create new data structure (admin)
  • PUT /api/datastructures/:id - Update data structure (admin)
  • DELETE /api/datastructures/:id - Delete data structure (admin)

πŸ“ Proposals

  • GET /api/proposals - Get all proposals
  • POST /api/proposals - Submit new proposal
  • PUT /api/proposals/:id - Update proposal status
  • DELETE /api/proposals/:id - Delete proposal

πŸ’¬ Comments

  • GET /api/comments/:type/:id - Get comments for content
  • POST /api/comments - Add new comment
  • DELETE /api/comments/:id - Delete comment

Contributing

We welcome contributions from the community! Here's how you can help make SDEverse better:

Quick Start

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes and test thoroughly
  4. Commit your changes (git commit -m 'Add amazing feature')
  5. Push to the branch (git push origin feature/amazing-feature)
  6. Open a Pull Request

Guidelines

  • 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

Ways to Contribute

  • πŸ› 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

Hacktoberfest

We're participating in Hacktoberfest 2025! Look for issues labeled:

  • hacktoberfest
  • good first issue
  • help wanted
  • beginner-friendly

Issue Labels

  • 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

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.

Privacy

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

License

This project is licensed under the MIT License - see the LICENSE file for details.

Support

Acknowledgments

  • 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!

Contributors

Thanks to all the amazing people who have contributed to SDEverse:

Contributors

Built with ❀️ by the open-source community

Report Bug β€’ Request Feature β€’ Star this repo ⭐

About

Collaborative platform to learn Data Structures & Algorithms with multi-language support, community contributions, and interactive visualizations.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 20

Languages