Dennis Potter
29666541bc
New features are proper error handling for emails and seperate emails for accepting/rejecting the invitation.
48 lines
2.8 KiB
Markdown
48 lines
2.8 KiB
Markdown
# wedding-rsvp-rs
|
|
|
|
This [Rust](https://www.rust-lang.org/) and [Rocket.rs](https://rocket.rs) based, fully responsive website is a simple contact form to RSVP to a wedding. It was meant to be simple to use, since a lot of non-tech-savvy people will usually attend a wedding as well ;-). Therefore, it is completely (HTML) email based and does not include any CAPTCHA.
|
|
|
|
|
|
#### Content
|
|
|
|
* [Features](#features)
|
|
* [Installation](#installation)
|
|
* [Screenshots](#screenshots)
|
|
* [Screenshot of homepage](#screenshot-of-homepage)
|
|
* [Screenshot of thanks page](#screenshot-of-thanks-page)
|
|
* [Screenshot of spam protection page](#screenshot-of-spam-protection-page)
|
|
* [License](#license)
|
|
|
|
## Features
|
|
|
|
* **KISS**: Not too many features and fields, no databases, no CAPTCHA.
|
|
* **Completely (HTML) email based**: The guest will receive a confirmation with additional information on top of the invite he got. Attached to this email, an ICS file enables the user to directly add the wedding into his calendar.
|
|
* **Configurable, multi-language strings**: All language strings can be defined in `config.hjson`. Since this website assumes that a different FQDN is used for every language, the mapping between TLDs and languages must be configured in `config.hjson` as well.
|
|
* **Separete emails for accepting/rejecting the invitation**: Guests who will attend will get a different e-mail from guests that will not attend.
|
|
* **Proper error handling for emails**: If an email cannot be sent, the website will always try to catch this error and inform the organizer of the wedding about the error and the reason of the error. He/she can act accordingly and manually contact the guest. The guest will get a nice landing page with information on how to contact the organizer.
|
|
* **IP based spam protection**: As mentioned before, this website does not include CAPTCHA to ease usability. There is, however, a small protection so that one IP can only send an email every X seconds. Here, X can be configured in `config.hjson`.
|
|
|
|
## Installation
|
|
|
|
1. `git clone https://git.dennispotter.eu/Dennis/wedding-rsvp-rs.git`
|
|
2. `cd wedding-rsvp-rs`
|
|
3. `cp config.hjson.example config.hjson`
|
|
4. Add your SMTP credentials to `config.hjson` adapt the language strings to your liking
|
|
5. `cargo run`
|
|
|
|
## Screenshots
|
|
|
|
#### Screenshot of homepage
|
|
![Screenshot of homepage](images/screenshot_wedding_rsvp_rs_1.jpg)
|
|
|
|
#### Screenshot of thanks page
|
|
![Screenshot of thanks page](images/screenshot_wedding_rsvp_rs_2.jpg)
|
|
|
|
#### Screenshot of spam protection page
|
|
![Screenshot of spam protection](images/screenshot_wedding_rsvp_rs_3.jpg)
|
|
|
|
## License
|
|
|
|
`wedding-rsvp-rs` is released under the [MIT license](LICENSE). The HTML template is derived from [Contact Form v1](https://colorlib.com/wp/template/contact-form-v1/), which is released under the [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/) license.
|
|
|