An open API service indexing awesome lists of open source software.

https://github.com/kotone6996/fastapi

TodoApp is a personal task management platform where authenticated users can register, log in, and manage their own todo list in a secure environment.
https://github.com/kotone6996/fastapi

api asyncio cookiecutter frontend jwt letsencrypt openapi openapi3 python-types pytorch react redoc traefik typescript

Last synced: 6 months ago
JSON representation

TodoApp is a personal task management platform where authenticated users can register, log in, and manage their own todo list in a secure environment.

Awesome Lists containing this project

README

          

# FastAPI TodoApp 🗒️

![FastAPI TodoApp](https://img.shields.io/badge/FastAPI-TodoApp-blue?style=flat&logo=fastapi)

Welcome to the **FastAPI TodoApp** repository! This is a personal task management platform designed for authenticated users. With this app, users can register, log in, and manage their own todo lists in a secure environment.

## Table of Contents

- [Features](#features)
- [Technologies Used](#technologies-used)
- [Getting Started](#getting-started)
- [Usage](#usage)
- [API Endpoints](#api-endpoints)
- [Testing](#testing)
- [Contributing](#contributing)
- [License](#license)
- [Contact](#contact)
- [Releases](#releases)

## Features

- **User Authentication**: Secure registration and login using JWT and OAuth2.
- **Task Management**: Create, read, update, and delete tasks.
- **Responsive Design**: User-friendly interface built with HTML5 and CSS.
- **Database Integration**: Store tasks securely using PostgreSQL.
- **RESTful API**: Access the application programmatically for automation and integration.
- **Testing**: Comprehensive testing suite using Pytest.

## Technologies Used

This project uses a variety of technologies to ensure a smooth and efficient user experience. The main technologies include:

- **FastAPI**: A modern web framework for building APIs with Python.
- **PostgreSQL**: A powerful, open-source relational database.
- **SQLAlchemy**: An ORM for database interaction.
- **Pydantic**: Data validation and settings management.
- **HTML5 & CSS**: For building the frontend interface.
- **JavaScript**: For client-side interactivity.
- **JWT & OAuth2**: For secure authentication.
- **Pytest**: For testing the application.

## Getting Started

To get started with the FastAPI TodoApp, follow these steps:

1. **Clone the Repository**:
```bash
git clone https://github.com/Kotone6996/FastAPI.git
cd FastAPI
```

2. **Set Up a Virtual Environment**:
```bash
python3 -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
```

3. **Install Dependencies**:
```bash
pip install -r requirements.txt
```

4. **Set Up the Database**:
- Make sure you have PostgreSQL installed.
- Create a database for the application.
- Update the database URL in the configuration file.

5. **Run the Application**:
```bash
uvicorn main:app --reload
```

6. **Access the Application**:
Open your browser and go to `http://127.0.0.1:8000`.

## Usage

Once the application is running, you can:

- **Register**: Create a new account.
- **Log In**: Access your account securely.
- **Manage Tasks**: Add, edit, or delete tasks in your todo list.

### User Interface

The user interface is designed to be simple and intuitive. You will find a clean layout that allows you to focus on your tasks without distractions.

## API Endpoints

The FastAPI TodoApp exposes several API endpoints for interaction. Here are some of the key endpoints:

- **POST /register**: Register a new user.
- **POST /login**: Log in to your account.
- **GET /tasks**: Retrieve all tasks for the authenticated user.
- **POST /tasks**: Create a new task.
- **PUT /tasks/{task_id}**: Update an existing task.
- **DELETE /tasks/{task_id}**: Delete a task.

### Example Requests

Here’s how you can interact with the API using `curl`:

1. **Register a User**:
```bash
curl -X POST http://127.0.0.1:8000/register -d '{"username": "testuser", "password": "testpass"}' -H "Content-Type: application/json"
```

2. **Log In**:
```bash
curl -X POST http://127.0.0.1:8000/login -d '{"username": "testuser", "password": "testpass"}' -H "Content-Type: application/json"
```

3. **Get Tasks**:
```bash
curl -X GET http://127.0.0.1:8000/tasks -H "Authorization: Bearer "
```

## Testing

To ensure the application works as expected, run the test suite:

```bash
pytest
```

This will execute all tests defined in the `tests` directory. Ensure that your test database is set up correctly before running tests.

## Contributing

Contributions are welcome! If you want to improve the FastAPI TodoApp, please follow these steps:

1. Fork the repository.
2. Create a new branch (`git checkout -b feature/YourFeature`).
3. Make your changes.
4. Commit your changes (`git commit -m 'Add some feature'`).
5. Push to the branch (`git push origin feature/YourFeature`).
6. Open a Pull Request.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Contact

For any questions or feedback, feel free to reach out:

- **Email**: your_email@example.com
- **GitHub**: [Kotone6996](https://github.com/Kotone6996)

## Releases

To download the latest release of the FastAPI TodoApp, visit the [Releases](https://github.com/Kotone6996/FastAPI/releases) section. You can find the latest files there to download and execute.

Thank you for checking out the FastAPI TodoApp! We hope you find it useful for managing your tasks.