Skip to content

bigOconstant/emaillist

Repository files navigation

Email List

Web app to keep track of who is subcribed or unsubscribed to your email list.

Technologies

Rust, SQLite, Diesel, Tera

Description

Users can update their email preferences with a unique UUID.

This can be obtained from examining the crud.db file. Which is the database file. (idea is you will send that id in their email with a unsubscribe link)

After a user signs up or you insert their record in the database they can then update their subscription preferences at /user/<uuid>

Environment variables

You can currently see the needed env variables in the .cargo/config.toml file.

DATABASE_URL = "crud.db"
APP_NAME = "APPNAME"
PORT = "8080"
IPBIND = "0.0.0.0"

Usage

cargo up

go to localhost:8080 to add a new user to your subscription list.

Docker

A Docker file and docker-compose.yml file are provided.

Run with docker-compose -f Docker/docker-compose.yml up

the data base file will be in volumes/crud.db

UI

Why SQLite, why not postgres?

It's a simple email list. SQLite is more than capable of handling it. With sqlite there are no external dependencies. This app can run just about anywhere.

Why did you use templates and not a SPA?

Again this is a simple email list. Transpiling hundreds of lines of Type script to generate a huge front end npm black hole just so someone can click unsubscribe is wasteful.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published