Coder Social home page Coder Social logo

heathhenley / newdepths Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 1.25 MB

Simple app to send email notifications when new crowdsourced data or mbes data becomes available in NOAA's REST data endpoints.

Home Page: https://newdepths.xyz

License: MIT License

Python 19.83% Less 33.49% SCSS 33.92% JavaScript 2.22% CSS 0.26% HTML 10.29%
bathymetry fastapi htmx python crowdsourced-bathymetry

newdepths's Introduction

NewDepths.xyz

Simple email notifications of new public mbes and csb data

This is a simple set up to send you an email summary periodically of the data in a user defined area. The app queries the MBES, CSB, and NOS data from NOAA (at the time, maybe more will be added). You can log in, define a bounding box, and then receive a daily email with a summary of the new data in that area.

In addtion to getting a daily email when there is new data in your bounding boxes, you can now request the MBES or CSB data in CSV format from NOAA's point store API right from your account page. There are more options to customize this that may be added in the future, if you need them now consider using their api directly.

It's live at newdepths.xyz.

There is also an api so that everything could be implemented in a different, probably better frontend. I know the existing front end included with the project is not pretty, but it demonstrates the functionality.

I get that people might not want to give their email to a random website, so it's also possible to pull down the repo and run it yourself in docker. Feel free to reach out or open an issue with any questions or suggestions.

Run it with docker

If you want to run it, the simplest way is to use docker-compose, if you have docker and docker-compose installed. Just run docker compose up in the backend directory. You can seed with the existing data sources by running docker-compose exec api python seed.py.

Run it without docker

If you want to run it without docker, you can do the following (using python 3.10 or later):

  1. Clone the repo
  2. Change into the directory, and backend
  3. Make a virtual environment python -m venv venv and activate it (on windows venv\Scripts\activate, on linux source venv/bin/activate)
  4. pip install -r requirements.txt
  5. To run the api: uvicorn api:app --reload
  6. To run the worker: python worker.py

The seed.py will make the 'datatypes' in the database that currently exist and correspond to the NOAA data. The worker.py will run the periodic task to send the emails. The api.py is the fastapi app that serves the api.

You will need to set up a .env file, like the .env.example with your own variables.

Contributing

Help is welcome! For any issues or suggestions, just open an issue. If you want to contribute, open a PR. I'm happy to help you get started! I'll eventually move to using issues - but as I'm the only one working on it right now, I've got a bunch of notes in todo.md that I'm working through.

newdepths's People

Contributors

dependabot[bot] avatar heathhenley 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.