Skip to content

kundan05/DevInsight

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DevInsight

DevInsight is a real-time developer collaboration platform designed to streamline code sharing, pair programming, and skill assessment. It features a modern, responsive interface and robust backend to support seamless developer interactions.

Features

  • Real-time Collaboration: Code continuously with other developers using a synchronized editor (Monaco Editor + Socket.io).
  • Code Snippets: Create, manage, and share reusable code snippets with syntax highlighting.
  • Coding Challenges: Participate in algorithmic challenges.
  • High Performance: Built with a scalable architecture using Redis for caching and session management.

Tech Stack

Frontend

  • Framework: React 18, TypeScript, Create React App
  • State Management: Redux Toolkit
  • Styling: Tailwind CSS
  • Editor: Monaco Editor
  • Real-time: Socket.io Client

Backend

  • Runtime: Node.js
  • Framework: Express.js
  • Database: SQLite (Development) / PostgreSQL (Production) - Managed via Prisma ORM
  • Caching: Redis
  • Real-time: Socket.io Server
  • Authentication: JWT & Cookies

Architecture

graph TD
    Client[React Client] <-->|HTTP/REST| API[Express API]
    Client <-->|WebSocket| Socket[Socket.io Service]
    API -->|Query| DB[(SQLite/Postgres)]
    API -->|Cache| Redis[(Redis)]
    Socket -->|Pub/Sub| Redis
Loading

Screenshots

Login Page Dashboard
Login Page Dashboard
Challenges List Challenge Detail
Challenges Challenge Detail

Getting Started

Prerequisites

  • Node.js (v18+)
  • npm
  • Redis (Required for caching/sessions. Ensure a Redis instance is running locally on port 6379, or update .env)

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/devinsight.git
    cd devinsight
  2. Backend Setup

    cd backend
    
    # Install dependencies
    npm install
    
    # Configure Environment
    cp .env.example .env
    # NOTE: The default .env is configured for SQLite. 
    # If using Postgres, update DATABASE_URL and ensure schema.prisma provider is "postgresql".
    
    # Initialize Database (SQLite by default)
    npx prisma migrate dev
    
    # Seed Database (Optional)
    npm run seed
    
    # Start the Server
    npm run dev
  3. Frontend Setup

    cd frontend
    
    # Install dependencies
    npm install
    
    # Start the React App
    npm start
  4. Visit the App Open http://localhost:3000 to view the application.

Running Tests

To run the backend integration tests:

cd backend
npm test

Docker Support

The project includes a docker-compose.yml for orchestrating the full stack (Frontend, Backend, Postgres, Redis).

docker-compose up --build

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published