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.
- 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.
- Framework: React 18, TypeScript, Create React App
- State Management: Redux Toolkit
- Styling: Tailwind CSS
- Editor: Monaco Editor
- Real-time: Socket.io Client
- 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
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
| Login Page | Dashboard |
|---|---|
![]() |
![]() |
| Challenges List | Challenge Detail |
|---|---|
![]() |
![]() |
- Node.js (v18+)
- npm
- Redis (Required for caching/sessions. Ensure a Redis instance is running locally on port 6379, or update
.env)
-
Clone the repository
git clone https://github.com/yourusername/devinsight.git cd devinsight -
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
-
Frontend Setup
cd frontend # Install dependencies npm install # Start the React App npm start
-
Visit the App Open
http://localhost:3000to view the application.
To run the backend integration tests:
cd backend
npm testThe project includes a docker-compose.yml for orchestrating the full stack (Frontend, Backend, Postgres, Redis).
docker-compose up --build


