Thanks to visit codestin.com
Credit goes to github.com

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

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

OverviewFeaturesQuick StartTech StackContributingContributors


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 BugRequest FeatureStar 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