Skip to content

Latest commit

 

History

History
231 lines (163 loc) · 16.3 KB

README.md

File metadata and controls

231 lines (163 loc) · 16.3 KB

DevRoot - Full Stack MERN Application

About The Project

DevRoot is a developer-focused networking platform inspired by Tinder and DevTinder by Akshay Saini's Namaste Node.js course, allowing developers to connect based on shared interests and projects. This project is built using the MERN stack (MongoDB, Express, React, Node.js), with additional libraries for state management, animations, and authentication.

🚀 Technologies Used

Frontend Technologies

Technology Description
React For building the user interface.
Redux For state management across the application.
Tailwind CSS For utility-first CSS styling.
Axios For making HTTP requests to the backend.
Sooner For handling asynchronous operations efficiently.
Framer Motion For adding smooth animations to the UI.
React-Icons For adding icons in the UI.
React Markdown Editor Lite For rich text markdown editing.
Dotenv For managing environment variables.

Backend Technologies

Technology Description
Node.js JavaScript runtime environment.
Express.js Framework for building RESTful APIs.
Mongoose For interacting with MongoDB using object data modeling (ODM).
JWT For secure authentication and session management.
Bcrypt For hashing passwords to enhance security.
CORS For handling cross-origin requests.
Cookie-Parser For parsing cookies in HTTP requests.
Nodemon For automatic server restarts during development.
Dotenv For managing environment variables.

Database & Tools

Technology Description
MongoDB Atlas Cloud-based NoSQL database for storing user data.
Postman For API testing and debugging backend routes.
Vercel Hosting service for frontend deployment.
Render Hosting service for backend deployment.

🛠 Features & Highlights

🔐 Authentication & Security

🔑 JWT-Based Authentication – Secure login using JSON Web Tokens (JWT)
🔒 Bcrypt Password Hashing – Strong encryption for user passwords
📩 Secure Password ResetOTP or token-based password recovery
🛂 Role-Based Access Control – Separate privileges for Admin, Moderator, and Users

📊 Optimized Data Management

35+ Robust APIs – Well-structured endpoints for authentication, user profiles, connections, and more
🔍 Advanced Search & Filtering – Find developers by skills, location, and interests
📌 Pagination for Performance – Efficient API responses for large datasets
🗄️ Scalable Database SchemaOptimized MongoDB queries with compound indexes

🔗 User Interaction & Matching

🔥 Swipe Mechanism"Interested", "Ignore", and "Skip" profiles, Tinder-style
💡 AI-Powered Matching – Smart recommendations based on skills, interests, and activity
📨 Real-Time MessagingDirect chat once a match is made
🎯 Personalized Feed – User feed adapts dynamically based on connections & interests

🎨 UI/UX Enhancements

🌈 Framer Motion Animations – Smooth and fluid transitions
🌙 Dark Mode Support – Switch between light and dark themes
🔔 Instant Notifications – Get real-time updates for messages, connections, and activity

⚙️ Performance & Debugging

📌 Comprehensive Error Handling – Centralized middleware to manage API errors
🔗 Integration-Ready APIs – Easily connect with frontend & third-party services
📜 Logging & Debugging Middleware – Tracks API requests & errors
🚀 Rate Limiting & Throttling – Prevents API abuse and excessive requests

☁️ Deployment & Scalability

📡 WebSockets for Real-Time Features – Enables live messaging & notifications
🖼️ Cloud Storage for Media – Handles profile pictures and uploads efficiently
🚀 CI/CD Deployment PipelineAutomated deployment using GitHub Actions, Vercel (frontend), and Render (backend)

🎨 Contents:

This repository contains a Collection of COde, Assignments & Notes, which help you understand the concepts of Node.js.

Learn basic of Node.js and its Fundamentals

Dive into Node.js fundamentals! This season covers core concepts like modules, the event loop, async programming with libuv, V8 engine insights, and database integration with SQL & NoSQL. A perfect starting point for backend development.

Working on DevTinder app

Build a real-world MERN project! This season focuses on microservices, Express server setup, authentication, database modeling, API development, and frontend integration, culminating in the DevTinder app. Ideal for hands-on learning!

  1. Repository - Frontend : Handles the user interface and client-side logic

  2. Repository - Backend : Manages server-side logic, APIs, and interactions with the database.

View commits for every topic update

Season 3:

Will be added soon...


📦 Installation & Setup

1. Clone the Repository

To get started with the project, clone the repository to your local machine.

git clone https://github.com/onlyVishesh/Namaste-Nodejs.git

2. Install Dependencies

Depending on the season and episode folder may vary.

cd <folder>
npm install

3. Configure Environment Variables

Create a .env file in the server folder:

Frontend .env file
VITE_BackendURL = <Backend_URL>
Backend .env file
PORT=3000
connectionString = <MongoDB_connection_string>
secretJWT = <Write_any_text>
adminEmails = <comma_seperated_emails_for_admin_role>
moderatorEmails = <comma_seperated_emails_for_moderators_role>
FrontendURL = <Frontend_URL>

4. Run the Application

npm run dev

📬 Let's Connect

If you found this repository helpful, feel free to connect with me on:

  • GitHub
  • linkedin
  • twitter

Let's collaborate and build amazing projects together! 🤝


📚 Other Resources

Here are some additional resources that you might find useful:

  • Namaste React: Check out this repo to learn React, Redux, Tailwind, and other frontend concepts for building interactive UIs.
  • Javascript: A repository focused on learning Javascript concepts, from basics to advanced programming, contains code of various sources.
  • Simple HTML,CSS, and JS projects: A repository focused on learning beginner concepts, from basics to advanced programming, with code from various sources and beginner-level projects.

If you have any other great resources to share, feel free to contribute! 🚀


🤝 Contribution

  • Contributions are always welcome!
  • Feel free to fork, create a pull request, or open an issue if you have ideas for improvements.
  • Let's make this better together! 🚀🔥

⭐ Show your support

Give a ⭐️ if this project helped you and try to contribute and share with your developers.