A modern, responsive todo list application built with ASP.NET Core 8 MVC and Entity Framework Core with an in-memory database.
- ✅ Create, read, update, and delete todo items
- 🎯 Priority levels (High, Medium, Low)
- 📊 Task status tracking (Pending/Completed)
- 📱 Responsive design with Bootstrap 5
- 🔍 Filter tasks by status and priority
- 📈 Task statistics dashboard
- ⚡ In-memory database for quick development
- ASP.NET Core 8.0 - Web framework
- Entity Framework Core - ORM with In-Memory database
- Bootstrap 5 - CSS framework for responsive design
- Font Awesome - Icons
- jQuery - Client-side validation and interactions
TodoApp/
├── Controllers/
│ ├── HomeController.cs # Home page controller
│ └── TodoController.cs # Main todo CRUD operations
├── Models/
│ └── TodoItem.cs # Todo item entity model
├── Data/
│ └── TodoContext.cs # Entity Framework context
├── Views/
│ ├── Shared/
│ │ ├── _Layout.cshtml # Main layout template
│ │ └── _ValidationScriptsPartial.cshtml
│ └── Todo/
│ ├── Index.cshtml # Todo list view
│ ├── Create.cshtml # Create new todo
│ ├── Edit.cshtml # Edit existing todo
│ ├── Details.cshtml # Todo details view
│ └── Delete.cshtml # Delete confirmation
├── Properties/
│ └── launchSettings.json # Development settings
├── appsettings.json # Application configuration
└── Program.cs # Application entry point
- .NET 8.0 SDK or later
- Visual Studio 2022 or VS Code
-
Clone the repository:
git clone <repository-url> cd copilot-demo
-
Restore NuGet packages:
dotnet restore
-
Run the application:
dotnet run
-
Open your browser and navigate to:
- HTTP:
http://localhost:5000 - HTTPS:
https://localhost:5001
- HTTP:
The application will automatically create an in-memory database with sample data when it starts.
- Title: Required field with 200 character limit
- Description: Optional field with 1000 character limit
- Priority: Enum (Low, Medium, High)
- Status: Boolean indicating completion
- Timestamps: Creation and completion dates
- Uses Entity Framework Core with In-Memory database
- Includes data seeding with sample todo items
- Configured with proper indexing for performance
- Proper data validation and constraints
- Full CRUD operations (Create, Read, Update, Delete)
- Task filtering by status and priority
- Toggle completion status
- Comprehensive error handling and logging
- Data validation with model binding
- Modern, responsive design
- Color-coded priority indicators
- Interactive task completion toggle
- Statistics dashboard
- Filter and search capabilities
- Success/error message notifications
- Comprehensive exception handling in controllers
- Logging for debugging and monitoring
- User-friendly error messages
- Validation error display
- Anti-forgery tokens for form submissions
- Input validation and sanitization
- Model binding protection
- Efficient database queries
- Proper indexing on frequently queried fields
- Asynchronous operations where appropriate
Potential improvements for this application:
- User authentication and authorization
- Due dates and reminders
- Categories and tags
- File attachments
- Search functionality
- Data export capabilities
- Real database integration (SQL Server, PostgreSQL, etc.)
- API endpoints for mobile app integration
Feel free to submit issues and enhancement requests!
This project is open source and available under the MIT License.