Frame API Build on JSON Web Tokens
A user system API starter. Bring your own front-end.
Features
- Sign up system with verification email
- Login system with forgot password and reset password
- Abusive login attempt detection
- Session management system
- Using minio to store user avatar
- User management section for admins
- Add and manage admins
Responsive HTML e-mails
Hermes is the Go part of the great mailgen engine for Node.js. Check their work, it's awesome! It's a package that generates clean, responsive HTML e-mails and associated plain text fallback.
Technology
Frame is built with the Echo 3.3 framework. We're using MongoDB as a data store and Minio to store files.
Bring your own front-end
Frame is only a restful JSON API. If you'd like a ready made front-end for clients, checkout Hexagenal. Or better yet, fork this repo and build one on top of Frame.
Requirements
You need Golang >=1.5.x
and you'll need a
MongoDB >=2.6
server running.
Installation
$ git clone https://github.com/thedevsir/frame-backend.git
$ cd frame-backend
Configuration
Simply copy .env-sample
to .env
and edit as needed. Don't commit .env
to your repository.
Running the app
$ go run !(*_test).go
____ __
/ __/___/ / ___
/ _// __/ _ \/ _ \
/___/\__/_//_/\___/ v3.3.dev
High performance, minimalist Go web framework
https://echo.labstack.com
____________________________________O/_______
O\
⇨ http server started on [::]:3500
Now you should be able to point your browser to http://127.0.0.1:3500/swagger/index.html and see the documentation page.
Running in production
I suggest run MongoDB, Minio and Frame separately on container base tools like Docker to better manage.
Have a question?
Any issues or questions (no matter how basic), open an issue. Please take the initiative to read relevant documentation and be pro-active with debugging.
Want to contribute?
Contributions are welcome. If you're changing something non-trivial, you may want to submit an issue before creating a large pull request.
License
MIT
Don't forget
What you build with Frame is more important than Frame.
Team
Ami Irani Senior Full Stack Developer |
Ehsan Ranjbar Software Developer |
Amirali Roshanaei Software Developer |