Giter Site home page Giter Site logo

eladgunders / fastapi-todos Goto Github PK

View Code? Open in Web Editor NEW
31.0 2.0 2.0 2.95 MB

๐Ÿš€ async web server using FastAPI for to-do list apps

License: MIT License

Python 93.77% Mako 0.73% Dockerfile 0.77% Shell 0.30% HTML 4.43%
async-postgres fastapi fastapi-users postgresql sqlalchemy todo-app todolist todos

fastapi-todos's Introduction

๐Ÿš€

FastAPI Todos

FastAPI ๐Ÿš€ โ€ข PostgreSQL ๐Ÿ˜ โ€ข SQLAlchemy ๐Ÿ’  โ€ข FastAPIUsers ๐Ÿ‘ฅ

Introduction ๐Ÿงš

FastAPI Todos is an exceptional resource for individuals seeking to learn FastAPI or develop a front end for a todo-list app. Its powerful feature set, combined with the speed and simplicity of FastAPI, empowers developers to create robust and user-friendly applications efficiently. With flexible database support, comprehensive documentation, and a customizable codebase, FastAPI Todos streamlines the development process and enables you to deliver high-quality todo-list apps with ease.

API ๐ŸŒŽโ€Š

Click here for the full documentation.

API docs

Technologies Used ๐Ÿ“ฑ

This project combines the following:

  • FastAPI for the fast speed web-server and data validation at runtime.
  • PostgreSQL as the database management system (DBMS).
  • SQLAlchemy as the object relational mapper (ORM).
  • FastAPIUsers for registration and authentication system.
  • Docker for containerizing the application.
  • Docker Compose for running the project locally in a containerized environment.

... and some more stuff.

Running Locally ๐Ÿก

Setting up the project ๐Ÿ‘ท

Clone the repository and navigate to its directory:

$ git clone https://github.com/eladgunders/fastapi-todos.git
$ cd fastapi-todos

Setting up environment variables โš™๏ธ

To properly configure the application, you'll need to define the following environment variables in the web-variables.env file:

  • CORS_ORIGINS: a comma-separated list of allowed origins for Cross-Origin Resource Sharing (CORS).
  • FRONT_END_BASE_URL: the base URL of your frontend application.
  • SMTP_HOST: the hostname or IP address of the SMTP server that will be used for sending emails.
  • SMTP_PORT: the port number of the SMTP server. Usually, this is 587.
  • SMTP_USER: the username for authenticating with the SMTP server.
  • SMTP_PASSWORD: the password for authenticating with the SMTP server.
  • EMAILS_FROM_EMAIL: the email address that will appear as the sender of all system-generated emails.
  • EMAILS_FROM_NAME: the name that will appear as the sender of all system-generated emails.

Running the application with Docker Compose ๐Ÿณ

To run the application locally, you will need to have Docker and Docker Compose installed on your machine.

Once you have Docker and Docker Compose installed, you can use the following command to start the application:

$ docker compose up

If everything is working correctly, you should see output in your terminal indicating that the application is running.

You can then access the application from http://localhost:8000.

You can also play with the interactive API documentation (Swagger) by visiting http://localhost:8000/docs on your web browser.

License ๐Ÿ“œ

This project is under the MIT license.

fastapi-todos's People

Contributors

eladgunders avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

fastapi-todos's Issues

running locally

Hi, when I'm trying to run python todos/scripts/init_db.py

I'm getting:

Traceback (most recent call last):
 File โ€œ/Users/tomer/fastapi-todos/todos/scripts/init_db.pyโ€, line 3, in <module>
  from app.core.db import create_all_entities
ModuleNotFoundError: No module named โ€˜appโ€™

What am I doing wrong?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.