π Live Demo | π± Responsive Design | β‘ Modern Tech Stack
Road2Skill is a full-stack learning platform that helps users master new skills through structured roadmaps, curated resources, and community collaboration. Built with React.js and Node.js, featuring real-time progress tracking, interactive dashboards, and modern UI/UX design.
A comprehensive skill development platform designed to guide learners from beginner to professional level. The application features user authentication, progress tracking, community interaction, and personalized learning paths - all deployed on Railway with Docker containerization.
- Visual Learning Paths: Step-by-step roadmaps for different skills and technologies
- Progress Tracking: Real-time completion status and learning analytics
- Custom Roadmaps: Users can create and share their own learning paths
- Difficulty Levels: Beginner to advanced content organization
- Curated Content: High-quality learning materials including videos, articles, and courses
- Smart Filtering: Advanced search by category, difficulty, and content type
- Community Contributions: User-generated resource recommendations
- Bookmarking System: Save and organize favorite learning materials
- Discussion Forums: Connect with learners worldwide
- Experience Sharing: Post questions, insights, and learning experiences
- Social Features: Like, comment, and engage with community content
- Knowledge Exchange: Collaborative learning environment
- Professional Advice: Expert tips on resume building and interview preparation
- Industry Insights: Current trends and skill requirements
- Portfolio Guidance: Help with project showcasing and career development
- Transition Support: Resources for career changes and skill upgrades
- Learning Dashboard: Comprehensive view of learning progress and achievements
- Skill Tracking: Monitor progress across different learning paths
- Performance Metrics: Detailed analytics on learning patterns and milestones
- Goal Setting: Set and track personal learning objectives
- Node.js & Express.js - RESTful API server with modern ES6+ modules
- MongoDB & Mongoose - NoSQL database with ODM for data modeling
- Passport.js - Authentication middleware with local strategy
- bcrypt - Secure password hashing and authentication
- express-session - Session management for user state
- express-validator - Input validation and sanitization
- CORS - Cross-origin resource sharing configuration
- React.js 18 - Modern component-based UI with hooks and context
- Vite - Fast build tool and development server
- React Router DOM - Client-side routing and navigation
- Framer Motion - Smooth animations and micro-interactions
- React Icons - Comprehensive icon library
- Axios - HTTP client for API communication
- CSS3 - Modern styling with CSS variables and flexbox/grid
- Docker - Containerization for consistent deployments
- Railway.com - Cloud hosting and continuous deployment
- Git & GitHub - Version control and collaboration
- ESLint - Code linting and quality assurance
- Nodemon - Development server with hot reloading
Users Collection:
βββ Authentication (email, password)
βββ Profile Information (name, bio, skills)
βββ Progress Tracking (completed roadmaps, achievements)
βββ Preferences (theme, notifications)
Roadmaps Collection:
βββ Content Structure (title, description, steps)
βββ Metadata (difficulty, category, duration)
βββ Creator Information (author, created date)
βββ Progress Tracking (completion rates, user feedback)
Community Posts:
βββ Post Content (title, description, media)
βββ Engagement (likes, comments, shares)
βββ Categorization (tags, topics)
βββ Author Information (user references)
Resources Collection:
βββ Learning Materials (links, descriptions)
βββ Classification (type, difficulty, category)
βββ Quality Metrics (ratings, reviews)
βββ Curation Data (contributor, verification)
π Visit Road2Skill
- Node.js (v18+ recommended)
- MongoDB (v5.0+)
- npm or yarn package manager
- Git
git clone https://github.com/Sahil0502/Road2Skill.git
cd Road2Skillcd express
npm install
# Create .env file
echo "MONGODB_URI=mongodb://localhost:27017/road2skill
SESSION_SECRET=your_secure_session_secret_here
PORT=3001
NODE_ENV=development" > .env
# Start the backend server
npm run start:devcd ../Frontend/Road2Skill
npm install
# Start the development server
npm run dev- Frontend:
http://localhost:5173 - Backend API:
http://localhost:3001
# Build and run with Docker
docker build -t road2skill .
docker run -p 3001:3001 road2skillRoad2Skill/
βββ π³ docker-compose.yml # Multi-service Docker configuration
βββ π³ Dockerfile # Production container build
βββ π railway.json # Railway deployment configuration
βββ π README.md # Project documentation
β
βββ π₯οΈ express/ # Backend API Server
β βββ src/
β β βββ π mongoose/ # Database layer
β β β βββ schemas/ # MongoDB data models
β β β β βββ user.mjs # User authentication & profiles
β β β β βββ roadmap.mjs # Learning path structures
β β β β βββ community.mjs # Community posts & interactions
β β β β βββ contribution.mjs # User contributions
β β β β βββ careerGuidance.mjs # Career advice content
β β β βββ seed.mjs # Database initialization
β β β βββ seed-*.mjs # Sample data population
β β βββ π£οΈ routers/ # API endpoint handlers
β β β βββ users.mjs # User management endpoints
β β β βββ roadmaps.mjs # Roadmap CRUD operations
β β β βββ community.mjs # Community features API
β β β βββ contribution.mjs # Content contribution API
β β β βββ recommendations.mjs # Personalized suggestions
β β β βββ careerGuidance.mjs # Career guidance API
β β βββ π strategies/ # Authentication strategies
β β βββ π§ utils/ # Helper functions & validation
β βββ π¦ package.json # Backend dependencies
β
βββ π¨ Frontend/Road2Skill/ # React Frontend Application
βββ src/
β βββ π§© components/ # React UI components
β β βββ Home.jsx # Landing page & hero section
β β βββ Login.jsx # User authentication
β β βββ CreateAccountForm.jsx # User registration
β β βββ RoadmapExplore.jsx # Browse learning paths
β β βββ RoadmapLearning.jsx # Interactive learning interface
β β βββ ResourceHub.jsx # Curated learning materials
β β βββ CommunityInsights.jsx # Social learning features
β β βββ CareerGuidance.jsx # Professional development
β β βββ UserProfile.jsx # Profile management
β β βββ MyLearningProgress.jsx # Progress tracking
β β βββ PersonalizedRecommendations.jsx # AI suggestions
β β βββ ContributionForm.jsx # Content creation
β β βββ UserOnboarding.jsx # New user experience
β βββ π¨ componentsCss/ # Component-specific styles
β βββ πΌοΈ assets/ # Images, icons, media files
β βββ βοΈ config/ # Environment & API configuration
β βββ π± App.jsx # Main application component
βββ π¦ package.json # Frontend dependencies
POST /api/auth/register # User registration with validation
POST /api/auth/login # Secure login with session creation
POST /api/auth/logout # Session termination
GET /api/auth/status # Authentication status check
GET /api/user/profile/:id? # User profile retrieval
PUT /api/user/profile # Profile updates and preferencesGET /api/contributions # Fetch all roadmaps with pagination
GET /api/contributions/:id # Detailed roadmap information
POST /api/contributions # Create new learning roadmap
PUT /api/contributions/:id # Update existing roadmap
DELETE /api/contributions/:id # Remove roadmap (authorized users)GET /api/user/progress # Personal learning progress
POST /api/user/progress/:roadmapId # Update completion status
GET /api/recommendations # Personalized learning suggestions
POST /api/user/achievements # Track milestones and badgesGET /api/community/posts # Community discussion posts
POST /api/community/posts # Create new discussion
PUT /api/community/posts/:id # Update post content
DELETE /api/community/posts/:id # Remove post (author/admin)
POST /api/community/like/:id # Like/unlike posts
POST /api/community/comment/:id # Add comments to postsGET /api/resources # Curated learning resources
POST /api/resources # Add new resource (community)
PUT /api/resources/:id # Update resource information
GET /api/resources/search # Search resources by criteria
POST /api/resources/bookmark/:id # Bookmark favorite resourcesGET /api/career-guidance # Career advice and tips
POST /api/career-guidance # Contribute career insights
PUT /api/career-guidance/:id # Update guidance content
GET /api/career/trends # Industry trends and insights- App.jsx - Main application router with context providers and theme management
- Home.jsx - Responsive landing page with feature showcase and call-to-action sections
- RoadmapExplore.jsx - Interactive roadmap browser with search, filtering, and category organization
- RoadmapLearning.jsx - Immersive learning interface with progress tracking and step-by-step guidance
- ResourceHub.jsx - Curated learning resource library with advanced filtering and bookmarking
- CommunityInsights.jsx - Social learning platform with discussion threads and user engagement
- CareerGuidance.jsx - Professional development section with expert advice and industry insights
- Responsive Design - Mobile-first approach with seamless cross-device compatibility
- Modern UI/UX - Clean, intuitive interface with consistent design language
- Smooth Animations - Framer Motion integration for engaging micro-interactions
- Dark/Light Themes - User preference-based theme switching with system detection
- Progressive Loading - Optimized performance with lazy loading and code splitting
- Accessibility - WCAG compliant design with keyboard navigation and screen reader support
- RESTful API Design - Well-structured endpoints following REST conventions
- Data Validation - Comprehensive input validation and sanitization using express-validator
- Error Handling - Centralized error management with meaningful error responses
- Authentication Security - bcrypt password hashing with secure session management
- Database Optimization - Efficient MongoDB queries with proper indexing
- CORS Configuration - Secure cross-origin request handling
- Authentication: Passport.js with local strategy and bcrypt password hashing
- Session Management: Secure session handling with express-session and connect-mongo
- Input Validation: express-validator for comprehensive data sanitization
- CORS Protection: Configured cross-origin resource sharing policies
- Environment Variables: Secure configuration management for sensitive data
- Password Security: Industry-standard bcrypt hashing with salt rounds
- Database Indexing: Optimized MongoDB queries with proper indexing strategies
- Frontend Bundling: Vite build optimization for faster load times
- Code Splitting: React lazy loading for improved initial page load
- API Efficiency: RESTful design patterns for minimal data transfer
- Caching Strategies: Browser caching and session storage optimization
- Error Boundaries: React error boundaries for graceful error handling
- Platform: Railway.com cloud hosting with automatic deployments
- Containerization: Docker for consistent environment across development and production
- CI/CD Pipeline: GitHub integration with automatic builds on push
- Environment Management: Separate configurations for development and production
- Health Monitoring: Railway health checks and restart policies
- SSL/TLS: Automatic HTTPS encryption for secure data transmission
# Development Commands
npm run start:dev # Backend development with nodemon
npm run dev # Frontend development with Vite hot reload
npm run build # Production build optimization
npm run lint # Code quality checks with ESLint- AI-Powered Recommendations - Machine learning for personalized learning paths
- Mobile Application - React Native iOS/Android apps
- Video Learning Integration - Embedded video tutorials and interactive content
- Certification System - Skill verification and digital certificates
- Advanced Analytics - Detailed learning insights and performance metrics
- API Ecosystem - Third-party integrations and developer API access
- Mentorship Platform - Connect learners with industry experts
- Gamification - Achievement systems, leaderboards, and learning challenges
I welcome contributions from developers who want to improve the learning experience! Here's how you can get involved:
-
Fork the repository and create your feature branch
git checkout -b feature/amazing-feature
-
Set up your development environment
# Install dependencies for both frontend and backend cd express && npm install cd ../Frontend/Road2Skill && npm install
-
Make your changes following the project conventions
- Follow React best practices and modern hooks patterns
- Use consistent naming conventions across components
- Write clean, well-documented code with meaningful comments
- Ensure responsive design compatibility
-
Test thoroughly before submitting
npm run lint # Check code quality npm run build # Test production build
-
Submit your contribution
git commit -m 'Add amazing feature' git push origin feature/amazing-featureThen open a Pull Request with detailed description of changes.
- ES6+ modern JavaScript features
- React Hooks functional component patterns
- RESTful API design principles
- MongoDB best practices for data modeling
- Responsive Design mobile-first approach
- π Live Demo: https://road2skill-production.up.railway.app/
- π GitHub Repository: https://github.com/Sahil0502/Road2Skill
- π¨βπ» Developer: Sahil .R. Singh
- π§ Contact: [[email protected]]
- πΌ LinkedIn: [https://www.linkedin.com/in/sahil-singh-ss9824/]
- π§ Backend: Node.js, Express.js, MongoDB
- π¨ Frontend: React.js, Vite, Framer Motion
- π Deployment: Railway.com, Docker
- π Database: MongoDB with Mongoose ODM
- π Authentication: Passport.js with bcrypt
- π± Responsive: Mobile-first design approach
This project is licensed under the MIT License - see the LICENSE file for details.
- Open Source Community - For the amazing tools and libraries that made this project possible
- Modern Web Standards - Following industry best practices for full-stack development
- Learning Community - Inspired by the need for accessible, structured skill development
β Road2Skill - Empowering developers through structured learning paths β
Built with passion for education and modern web technologies
π Try Live Demo | β Star this repository | π Report Issues