Task Keeper is a simple yet functional To-Do List web application designed to help users manage their daily tasks. It features user authentication, API endpoints, and a minimal UI.
- Features
- Setup Instructions
- Testing Guide
- API Endpoints Documentation
- GitHub Actions Workflow
- Technologies and Extensions Used
- Contributing
- License
- User Authentication: Sign up, log in, and manage user accounts.
- To-Do Lists: Create, view, update, and delete tasks.
- RESTful API: Fully-featured API for task and list management.
- Responsive UI: Interactive interface with modern design.
- Deployment-Ready: Optimized for production with Render and Gunicorn. Another option is to run the application on Docker
To quickly set up and run the application using Docker:
- Build the Docker container:
docker compose build docker compose up
- Access the application at http://localhost:8000.
- Flask: Lightweight WSGI (Web Server Gateway Interface) web application framework enabling rapid development with its flexibility and extensive ecosystem
- Flask-SQLAlchemy: SQL toolkit providing ORM (Object Relational Mapping) functionality and simplified database operations
- Flask-Migrate: Database migration handling using Alembic for version control of database schema
- Flask-Login: User session management and authentication handling
- Flask-WTF: Form handling and validation with CSRF protection. To generate HTML forms with objects and classes
- SQLite: Development database
- PostgreSQL: Production database hosted on Render
- Skeleton CSS: Lightweight CSS framework providing responsive grid and basic styling
- jQuery: JavaScript library simplifying DOM (Document Object Model) manipulation and AJAX (Asynchronous JavaScript and XML) requests
- Python-dotenv: Environment variable management
- Flask-Testing: Unit testing utilities
- pytest: Testing framework for comprehensive test coverage
- Gunicorn: Production-grade WSGI (Web Server Gateway Interface) HTTP Server
- Docker: Containerization for consistent development and deployment environments
- GitHub Actions: Automated CI/CD pipeline including:
- Automated testing
- Code quality checks
- Deployment to Render
- Render: Cloud platform hosting the production application with automatic deployments