Internal team tool for profiles, chat, and task tracking with contribution tracking. Built as a team learning project practicing real GitHub workflows.
DevCollab is an internal team collaboration platform designed to streamline team workflows. It provides user profiles, real-time chat, task management, and contribution tracking—all built as a learning project to practice modern GitHub workflows and best practices.
This project is structured as a monorepo with a Next.js frontend and Node/Express backend, demonstrating scalable architecture patterns for internal tools.
- User Profiles — Manage team member profiles with roles and permissions
- Real-time Chat — Team communication with message history
- Task Tracking — Create, assign, and track tasks with status updates
- Contribution Tracking — Monitor team contributions and activity
- Modern Stack — Built with Next.js, Express, TypeScript, and PostgreSQL
- Monorepo Structure — Clean separation of frontend, backend, and shared code
- CI/CD Ready — GitHub Actions for automated testing and deployment
| Layer | Technology |
|---|---|
| Frontend | Next.js 14+, TypeScript, Tailwind CSS |
| Backend | Node.js, Express, TypeScript |
| Database | PostgreSQL |
| Authentication | JWT (JSON Web Tokens) |
| Package Manager | npm workspaces |
| CI/CD | GitHub Actions |
- Node.js 18+ (recommended: use nvm)
- npm 9+
- PostgreSQL database
- Git
-
Clone the repository
git clone https://github.com/Lodenix/devcollab.git cd devcollab -
Install dependencies
npm install
-
Set up environment variables
# Backend API cp apps/api/.env.example apps/api/.env # Edit apps/api/.env with your database credentials and JWT secret
-
Start development servers
# From root - starts both web and api npm run dev # Or start individually npm run dev --workspace=apps/web npm run dev --workspace=apps/api
-
Open in browser
- Frontend: http://localhost:3000
- API Health: http://localhost:4000/health
devcollab/
├── apps/
│ ├── web/ # Next.js frontend application
│ │ ├── src/ # Application source code
│ │ ├── public/ # Static assets
│ │ └── package.json
│ └── api/ # Express backend API
│ ├── src/
│ │ ├── routes/ # API route definitions
│ │ ├── controllers/ # Request handlers
│ │ ├── middleware/ # Authentication & validation
│ │ └── config/ # Configuration files
│ └── package.json
├── packages/
│ └── shared/ # Shared types and utilities
├── .github/
│ └── workflows/ # CI/CD pipelines
├── docs/ # Project documentation
├── package.json # Root package.json with workspaces
└── README.md
| Command | Description |
|---|---|
npm run dev |
Start all development servers |
npm run dev --workspace=apps/web |
Start frontend only |
npm run dev --workspace=apps/api |
Start backend only |
npm run build |
Build all applications |
npm run lint |
Lint all codebases |
npm run test |
Run test suites |
main— Production-ready code (protected, default branch)dev— Development branch (integration branch)- Feature branches — Create from
devfor new features
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit changes (
git commit -m 'Add amazing feature') - Push to branch (
git push origin feature/amazing-feature) - Open a Pull Request targeting
main
| Method | Endpoint | Description |
|---|---|---|
| GET | /health |
Health check endpoint |
| POST | /api/auth/login |
User authentication |
| POST | /api/auth/register |
User registration |
| GET | /api/users |
List all users |
| GET | /api/tasks |
List all tasks |
| POST | /api/tasks |
Create a new task |
# Database
DATABASE_URL=postgresql://user:password@localhost:5432/devcollab
# Authentication
JWT_SECRET=your-secret-key-here
JWT_EXPIRES_IN=7d
# Server
PORT=4000
NODE_ENV=development
# Frontend
NEXT_PUBLIC_API_URL=http://localhost:4000- User authentication and authorization
- Real-time chat with WebSockets
- Task management with drag-and-drop
- File sharing and attachments
- Activity dashboard and analytics
- Mobile responsive design
- Dark mode support
- Notification system
This project is licensed under the MIT License — see the LICENSE file for details.
For support, email husseinyahaya640@gmail.com or open an issue on GitHub.