Welcome to Taskify, a powerful and feature-rich platform for task and project management. This project provides a robust, monolithic back-end service designed to support modern, collaborative work environments with real-time features.
The platform is built using a monolithic architecture, where all core functionality is managed within a single, cohesive ASP.NET Core 8 application. This design simplifies development and deployment while providing a powerful foundation for the platform's features.
graph TD
subgraph "Clients"
Client["Web Browser / Mobile App"]
end
subgraph "Taskify Platform (Monolithic Backend)"
CoreAPI["ASP.NET Core 8 API"]
AuthService["Authentication Service"]
TaskService["Task & Project Service"]
RealtimeService["Real-time Service (SignalR)"]
NotificationService["Notification Service (Email)"]
EFCore["ORM (Entity Framework Core)"]
end
subgraph "External Services & Databases"
PostgresDB[(PostgreSQL Database)]
GoogleAuth["Google OAuth Service"]
SmtpService["SMTP Email Service"]
end
Client -- "HTTPS/REST" --> CoreAPI
Client -- "WebSockets" --> RealtimeService
CoreAPI --> AuthService
CoreAPI --> TaskService
CoreAPI --> NotificationService
AuthService -- "OAuth" --> GoogleAuth
NotificationService -- "SMTP" --> SmtpService
TaskService -- "CRUD Operations" --> EFCore
RealtimeService -- "Listens/Broadcasts" --> TaskService
EFCore -- "Manages Connection" --> PostgresDB
Taskify offers a comprehensive suite of features for effective project management and team collaboration.
- User Authentication: Secure user registration and login with email/password (using BCrypt hashing), plus social sign-on via Google OAuth 2.0.
- Project & Task Management: Create projects, and within them, create, assign, and track tasks with detailed attributes like status, priority, and due dates.
- Content Engagement: Interact with tasks through a commenting system and attach relevant files to keep all information centralized.
- Organization: Use tags to categorize and filter tasks, making it easy to find what you're looking for.
- Event Tracking: Manage and monitor important project milestones and events.
- Instant Messaging: A high-performance, real-time one-on-one and group chat is powered by ASP.NET Core SignalR.
- Live Notifications: Receive real-time updates within the application for important events like task assignments and new comments.
- Email Alerts: The system leverages MailKit to send email notifications for critical updates, ensuring users stay informed even when not actively using the application.
The platform is built on a foundation of powerful and scalable technologies from the .NET ecosystem.
| Category | Technology / Service |
|---|---|
| Backend Framework | ASP.NET Core 8 |
| Language | C# |
| Data Persistence | PostgreSQL with Entity Framework Core 8 (ORM) |
| Real-time Communication | ASP.NET Core SignalR |
| Authentication | JWT, Google OAuth 2.0, BCrypt.Net-Next (for password hashing) |
| API Documentation | Swashbuckle (Swagger) |
| Emailing | MailKit |
🚀 Getting Started (For Developers)
- .NET 8 SDK
- PostgreSQL Server
- Git
-
Clone the repository:
git clone https://github.com/your-username/taskify-backend.git cd taskify-backend -
Configure your settings in
appsettings.Development.json:- Update the
DefaultConnectionstring to point to your PostgreSQL database. - Configure your
SmtpSettingswith the credentials for your email sending service.
{ "ConnectionStrings": { "DefaultConnection": "Host=localhost;Port=5432;Database=taskify_db;Username=postgres;Password=your_password" }, "SmtpSettings": { "Server": "smtp.example.com", "Port": 587, "SenderName": "Taskify Notifications", "SenderEmail": "noreply@taskify.com", "Username": "your-smtp-username", "Password": "your-smtp-password" } } - Update the
-
Install dependencies (restores NuGet packages):
dotnet restore
-
Apply Entity Framework migrations to set up the database schema:
dotnet ef database update
-
Run the application:
dotnet run
-
Access the services:
- The API will be running on the configured launch URL (e.g.,
http://localhost:5000orhttps://localhost:5001). - The interactive Swagger UI for API documentation will be available at
/swagger.
- The API will be running on the configured launch URL (e.g.,
Contributions are welcome! Please feel free to fork the repository, create a feature branch, and submit a pull request.
This project is licensed under the MIT License.