Giter Site home page Giter Site logo

notifyme's Introduction

MIT License


Logo

NotifyMe

REST API that provides weather notification for registered users.

Table of Contents
  1. About The Project
  2. Getting Started
  3. License
  4. Contact

About The Project

Day Hour

NotifyMe is a Python Flask framework project designed as an API. It offers user registration and login functionalities, allowing users to receive a JSON Web Token (JWT) for authentication. With this token, users can subscribe to weather reports.

The weather reports provided by NotifyMe are customizable. Users have the option to receive hourly reports for each day or obtain daily data for an entire week. The project uses PostgreSQL to store user information and event data, while weather data is stored in MongoDB.

To automate tasks, NotifyMe utilizes Celery, a distributed task queue system. Celery runs periodic tasks to retrieve location information for a specified city and fetches weather forecasts from the OpenMeteo API. The retrieved data is then formatted and sent to users via email.

If you require additional information about the available routes and endpoints, you can visit the /api/help route, which provides details on all accessible endpoints.

(back to top)

Built with:

  • Flask
  • Celery
  • MongoDB
  • PostgreSQL
  • SQLalchemy
  • Docker
  • Pytest
  • Github Actions

(back to top)

Getting Started

This is how you can set up this project locally.

Prerequisites

  • docker
  • docker-compose
  • Python

Installation

  1. Clone the repo
    git clone https://github.com/lk36875/notifyme.git
  2. Enter notify directory
    cd notify
  3. Create .env file following instructions from example_env file.
  4. Run docker-compose
    docker-compose up -d
  5. Containers will be created, with Flask endpoints available at http://localhost:5000/.

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Contact

Łukasz Główka - LinkedIn

Project Link: https://github.com/lk36875/notifyme

(back to top)

notifyme's People

Contributors

lk36875 avatar

Watchers

 avatar

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.