Enigma
A small service written in Go and Vue.js which lets you share self-destructing
secrets.
Secret messages will self-destruct/expire after it has been viewed a given
number of times or if the time expires.
See it live!
Requirements
- Go version v1.12
- MongoDB version v3.6
- Vue.js version v2.6
Getting Started
Run Enigma backend server by issuing the following commands:
λ go build -o bin/enigma -v
λ ./bin/enigma
And the server will be up and running on the specified port.
Note:
To load environment variables if you're a terminal girl/guy, you might want
to use direnv. Simply, make the variables present in
.env.example
available.
Development
During development Hot-reloading is quite helpful.
Fresh can be used for hot-reloading go
code. And to run simply do the following to make the server go live:
λ cp .runner.conf.example runner.conf
λ fresh
Architecture
- The backend is written in Go with Gorilla/mux
which releases a RESTful api.
- MongoDB is being used as the
NoSQL database of choice.
- The frontend uses Vue.js that interacts with the rest
api.
- All CURD operations are possible via the RESTful api and can respond in XML,
JSON and can be extended to support YAML.
- Every secret is encrypted using AES algorithm in GCM Mode, thus making sure
that it's secure.
Credits
The logo is a reference to the Eight Trigrams Sealing Jutsu
in the anime © Naruto.
Screenshots
Contribution
Well this is kind of a learning project, feel free to fork it and happy hacking :)
License
MIT License
Copyright © 2019 Shashank Srivastav