An AI-powered task management application built with Angular 19 and ASP.NET Core 9. This project uses the Gemini 2.5 Flash model to provide conversational task summaries and automated task extraction from uploaded documents.
- AI Summary: Generates a 3-sentence conversational status report of your current tasks.
- Smart Extraction: Automatically identifies tasks and due dates from uploaded PDF/Text files.
- Task Management: Full CRUD (Create, Read, Update, Delete) functionality with a PostgreSQL backend.
- Responsive Design: Clean, modern UI built with Angular.
- Frontend: Angular 19, TypeScript, RxJS, CSS3.
- Backend: ASP.NET Core Web API, Entity Framework Core.
- Database: PostgreSQL.
- AI Engine: Google Gemini 2.5 Flash (via
Mscc.GenerativeAISDK).
- Node.js (v18+)
- .NET 8/9 SDK
- PostgreSQL instance
- Google AI Studio API Key (Get one here)
- Navigate to
Task-List-Backend/. - Create an
appsettings.jsonfile (refer toappsettings.Example.json). - Add your PostgreSQL connection string and Gemini API Key:
"ConnectionStrings": { "DefaultConnection": "Host=localhost;Database=TaskDb;Username=postgres;Password=your_password" }, "Gemini": { "ApiKey": "YOUR_ACTUAL_API_KEY" }
- Apply database migrations:
dotnet ef database update
- Start the API:
dotnet run
- Navigate to
TaskAi-Frontend/. - Install dependencies:
npm install
- Start the development server:
ng serve
- Open
http://localhost:4200in your browser.
The application uses JWT (JSON Web Tokens) for traditional authentication and supports SSO (Single Sign-On) integration.
- Why JWT? It allows for stateless, secure communication between the Angular frontend and C# API.
- SSO Management: Users logging in via SSO are mapped to a
ProviderIdin the database to ensure a seamless experience regardless of the login method.
- Model: Gemini 2.5 Flash was chosen for its high speed and generous free-tier quota.
- File Support: Currently supports
.pdfand.txtfiles. - Extraction: Works best with documents containing clear dates (e.g., "Due on 2026-05-20").
The schema includes:
- Users Table: Stores credentials, password hashes, and SSO provider details.
- Tasks Table: Stores task details with a foreign key relationship to the
Userstable.