dripfile

command module
v0.0.0-...-1da2387 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 7, 2024 License: MIT Imports: 17 Imported by: 0

README

Dripfile

File transfers made easy

Setup

This project depends on the Go programming language and NodeJS JavaScript environment. I like to use a POSIX-compatible Makefile to facilitate the various project operations but traditional Go commands and NPM scripts will work just as well.

On macOS, these dependencies can be easily installed via Homebrew:

brew install go node

Building

To build the application into a standalone binary, run:

make -j

Local Development

Services

This project depends on various services. To develop locally, you'll need to run these services locally somehow or another. I find Docker to be a nice tool for this but you can do whatever works best.

  • PostgreSQL - for persistent storage and task queue
  • MinIO - for integration testing

The following command starts the necessary containers:

docker compose up -d

These containers can be stopped via:

docker compose down
Running

To run (and auto-reload) the backend and frontend simultaneously:

make -j run

Features

  • Schedule-based transfers
  • Polling-based transfers
  • Automatic retries
  • Notify via email, text, etc
  • Works with S3, FTP, FTPS, SFTP, etc
  • Choose from common schedules or build your own

User Stories

  • Guest registers and is logged in
  • Guest logs in
  • User verifies their email address (required to log in?)
  • User updates another User's role (owner or admin)
  • User deletes Account (and all ref'd info)
  • User CRUDs a Location (no delete if affected Transfers)
  • User CRUDs a Transfer (history entries persist but won't link back)
  • User CRUDs a Schedule (no delete if affected Transfers)
  • User links / unlinks a Transfer and Schedule
  • User runs a Transfer adhoc
  • User reruns a completed Transfer adhoc
  • User views Transfer history
  • User cancels an in-progress Transfer
  • User switches account auth method (email, github, google, etc)

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
backend
secret
Package secret is a nicer wrapper around the nacl/secretbox package.
Package secret is a nicer wrapper around the nacl/secretbox package.
web

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL