Skip to content

augustosouza8/todo-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

To-do App 🗓️

A simple Flask-based web application for managing tasks and categories with secure user authentication.

MIT License Python Flask Tests

✨ Features

  • User Authentication System

    • Secure registration and login flows
    • Session management and logout functionality
  • Task Management

    • Create, read, update, and delete (CRUD) operations
    • Mark tasks as complete/incomplete
    • Rich text descriptions
  • Category System

    • Organize tasks with custom categories
  • Search & Filter

    • Real-time search functionality
  • Modern Interface

    • Responsive design for all devices
    • Intuitive user experience
    • Clean, minimalist aesthetics

🚀 Quick Start

Prerequisites

  • Python 3.8 or higher
  • PostgreSQL
  • pip package manager
  • Git

Installation

  1. Clone the repository

    git clone https://github.com/augustosouza8/augustosouza8-todo-app.git
    cd augustosouza8-todo-app
  2. Set up virtual environment

    python3 -m venv venv
    
    # Linux/MacOS
    source venv/bin/activate
    
    # Windows
    venv\Scripts\activate
  3. Install dependencies

    pip install -r requirements.txt
  4. Initialize database

    python -c "from db import init_db; init_db()"
  5. Launch application

    python app.py

The application will be available at http://localhost:5001 🎉

💡 Usage Guide

User Management

  1. Register a new account or login with existing credentials
  2. Secure password recovery flow available

Task Operations

  1. Create new tasks with:
    • Title and description
    • Category assignment
  2. Manage existing tasks:
    • Edit task details
    • Toggle completion status
    • Delete tasks

Category Management

  1. Create custom categories
  2. Edit category details
  3. Delete unused categories
  4. Assign/remove tasks from categories

Search

  1. Search tasks by title

🧪 Testing

Run the test suite using pytest:

pytest tests/

For coverage report:

pytest --cov=app tests/

📁 Project Structure

.
├── app.py              # Application core
├── requirements.txt    # Dependencies
├── static/            # Static assets
│   ├── js/           # JavaScript files
├── templates/         # HTML templates
└── tests/            # Test suite
    ├── conftest.py   # Test configuration
    ├── test_app.py   # App tests
    └── test_db.py    # Database tests

🚨 Production Deployment

Before deploying to production, implement these critical security measures:

  1. Security Configuration:

    • Set strong SECRET_KEY in app.py
    • Implement robust password hashing
    • Configure HTTPS
    • Set up proper session handling
  2. Server Setup:

    • Use production-grade WSGI server (Gunicorn/uWSGI)
    • Set up reverse proxy (Nginx/Apache)
    • Configure proper database security
    • Implement rate limiting
  3. Monitoring:

    • Set up error logging
    • Implement performance monitoring
    • Configure backup systems

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.


Made with ❤️ by Augusto Souza and with assistance from ChatGPT (click here to access the main used chat)

About

Just a simple Flask web to-do app

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published