Newsletters
The goal of this project is to build a MVP for a new kind of newsletter system.
The project is structured around 3 parts :
- the server part which serves newsletters as web pages,
- the tracker module which records the interaction between a subscriber and a newsletter,
- the analytics service which reports the interactions of subscribers on a newsletter.
Newsletter Server
The server of this MVP aims at delivering a newsletter as a unique web page, from a simple URL.
Run
First, run the different docker instances
(cd docker && docker-compose up)
Then fill the database, especially with a newsletter sample
go run scripts/database_creator.go
And finally, launch the server on port 8000
go run cmd/server/main.go run 8000
The newsletter can be read from this link:
http://localhost:8000/first-newsletter/1/Skey/nKey
The server is built with:
- Go the best language to build a backend service
- Echo a high performance, extensible, minimalist Go web framework
- sqlx a library providing a set of extensions on Go's standard database/sql library
- Viper a library to provide a complete configuration solution for Go applications
- ksuid a library for generating a specific kind of globally unique identifier
- Logrus a library providing a structured logger for Go
- TailwindCss a utility-first CSS framework for rapidly building custom designs
- MariaDB an open source relational database
- Docker a tool designed to make it easier to create, deploy, and run applications by using containers