A modern developer collaboration platform combining task management and real-time communication, built with ASP.NET Core and Next.js.
DevCollab is a full-stack enterprise application demonstrating:
- Enterprise Backend Development with ASP.NET Core
- Real-time Communication using SignalR
- Authentication & Authorization with JWT
- Scalable Architecture with clean separation of concerns
- Modern Frontend with Next.js and TypeScript
Next.js Frontend (Port 3000)
β
ASP.NET Core Web API (Port 5000)
β
Service Layer
β
Entity Framework Core
β
PostgreSQL Database
Real-time: Frontend β SignalR β ASP.NET Core
- ASP.NET Core 10 - Web API framework
- Entity Framework Core 10 - ORM
- PostgreSQL - Database
- JWT Authentication - Secure authentication
- BCrypt.Net - Password hashing
- AutoMapper - Object mapping
- FluentValidation - Input validation
- SignalR - Real-time communication (coming soon)
- Next.js 15 - React framework
- TypeScript - Type safety
- Tailwind CSS - Styling
- Axios - HTTP client
- Zustand - State management
- SignalR Client - Real-time updates
- User registration
- User login
- JWT token generation
- Password hashing with BCrypt
- Role-based authorization setup
- User model
- Workspace model
- Task model
- Message model
- Notification model
- WorkspaceMember model
- Entity relationships configured
- Workspace management
- Task management
- Member management
- Activity tracking
- SignalR hub setup
- Real-time chat
- Live notifications
- Typing indicators
- Task updates broadcast
- Next.js setup
- Authentication pages
- Dashboard
- Workspace views
- Task board
- Chat interface
- Docker containerization
- Backend deployment (Railway/Render)
- Frontend deployment (Vercel)
- Database hosting
- .NET 8 SDK or higher - Download
- Node.js 18+ - Download
- PostgreSQL - Local installation with pgAdmin OR Docker Desktop
- Local: Download PostgreSQL
- Docker: Download Docker Desktop
-
Clone the repository
git clone <your-repo-url> cd DevCollab
-
Set up PostgreSQL Database
Option A: Local PostgreSQL (Recommended if you have PostgreSQL installed)
See detailed guide: LOCAL_POSTGRESQL_SETUP.md
Quick steps:
- Open pgAdmin 4
- Create database:
devcollab - Update
DevCollab.API/appsettings.jsonwith your password:"ConnectionStrings": { "DefaultConnection": "Host=localhost;Port=5432;Database=devcollab;Username=postgres;Password=YOUR_PASSWORD" }
Option B: Docker (Alternative)
docker-compose up -d
-
Run database migrations
cd DevCollab.API dotnet ef migrations add InitialCreate dotnet ef database update -
Run the API
dotnet run
The API will be available at:
- HTTPS:
https://localhost:5001 - HTTP:
http://localhost:5000 - Swagger:
https://localhost:5001/swagger
- HTTPS:
cd frontend
npm install
npm run devDevCollab.API/
βββ Controllers/ # API endpoints
βββ Services/ # Business logic
βββ Repositories/ # Data access (coming soon)
βββ DTOs/ # Data transfer objects
βββ Models/ # Entity models
βββ Data/ # DbContext
βββ Hubs/ # SignalR hubs (coming soon)
βββ Middleware/ # Custom middleware (coming soon)
βββ Validators/ # FluentValidation rules (coming soon)
βββ Mappings/ # AutoMapper profiles (coming soon)
βββ Interfaces/ # Service interfaces (coming soon)
βββ Program.cs # Application entry point
POST /api/auth/register
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"password": "SecurePassword123!"
}Response:
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"role": "Member",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}POST /api/auth/login
Content-Type: application/json
{
"email": "john@example.com",
"password": "SecurePassword123!"
}Response:
{
"id": 1,
"name": "John Doe",
"email": "john@example.com",
"role": "Member",
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}GET /api/workspaces- Get all workspacesPOST /api/workspaces- Create workspaceGET /api/workspaces/{id}- Get workspace by IDPUT /api/workspaces/{id}- Update workspaceDELETE /api/workspaces/{id}- Delete workspace
GET /api/workspaces/{workspaceId}/tasks- Get all tasksPOST /api/workspaces/{workspaceId}/tasks- Create taskPUT /api/tasks/{id}- Update taskDELETE /api/tasks/{id}- Delete task
- Id (PK)
- Name
- Email (Unique)
- PasswordHash
- Role
- CreatedAt
- Id (PK)
- Name
- Description
- OwnerId (FK β Users)
- CreatedAt
- Id (PK)
- WorkspaceId (FK β Workspaces)
- UserId (FK β Users)
- Role
- JoinedAt
- Id (PK)
- Title
- Description
- Status (Todo, InProgress, Done)
- Priority (Low, Medium, High, Urgent)
- AssignedTo (FK β Users)
- WorkspaceId (FK β Workspaces)
- DueDate
- CreatedAt
- UpdatedAt
- Id (PK)
- WorkspaceId (FK β Workspaces)
- SenderId (FK β Users)
- Content
- CreatedAt
- Id (PK)
- UserId (FK β Users)
- Title
- Message
- IsRead
- CreatedAt
- Start the API:
dotnet run - Open Swagger UI:
https://localhost:5001/swagger - Test the
/api/auth/registerendpoint - Copy the JWT token from the response
- Click "Authorize" button in Swagger
- Enter:
Bearer <your-token> - Test protected endpoints
# Create a new migration
dotnet ef migrations add MigrationName
# Update database
dotnet ef database update
# Remove last migration
dotnet ef migrations remove
# List all migrations
dotnet ef migrations list# Start PostgreSQL
docker-compose up -d
# Stop PostgreSQL
docker-compose down
# View logs
docker-compose logs -f postgres
# Reset database (WARNING: Deletes all data)
docker-compose down -v
docker-compose up -d
dotnet ef database update- Phase 1: Project setup & authentication
- Phase 2: Workspace & task CRUD APIs
- Phase 3: SignalR real-time features
- Phase 4: Frontend development
- Phase 5: Testing & optimization
- Phase 6: Deployment
This is a learning project. Feel free to:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
- Security: Change the JWT secret key in production
- Database: Update PostgreSQL credentials for production
- CORS: Update allowed origins for production
- AutoMapper Warning: Version 12.0.1 has a known vulnerability. Monitor for updates.
This project is for educational purposes.
- Building RESTful APIs with ASP.NET Core
- Database design and Entity Framework Core
- JWT authentication and authorization
- Real-time communication with SignalR
- Clean architecture principles
- Repository and service patterns
- Docker containerization
- Full-stack application deployment
Happy Coding! π