Backend server for ELECT Web App written in GO(golang) with PostgreSQL Database, Microsoft Azure for Storage, and SendPulse as SMTP Service Provider.
It is a RESTful API created using:
- Gin Web Framework: https://github.com/gin-gonic/gin
- GORM (v1): https://github.com/jinzhu/gorm
- Microsoft Azure Blob Storage SDK: https://github.com/Azure/azure-storage-blob-go
- Gin-Swagger (For API documentation): https://github.com/swaggo/gin-swagger
- QOR Admin (For admin interface): https://github.com/qor/admin
- JWT-Go (For implementing JWTs & Refresh Token): https://github.com/golang-jwt/jwt
- SecureCookie (For encrypting cookies): https://github.com/gorilla/securecookie
- Casbin (For RBAC authorization): https://github.com/casbin/casbin
- Excelize (For parsing excel files): https://github.com/qax-os/excelize
- Go-OTP (For generating Time-based OTP): github.com/hgfischer/go-otp
- Gomail (For sending emails): https://github.com/go-gomail/gomail
https://e1ect.herokuapp.com/docs
Elect is a web application for conducting college elections(specifically designed for St. Aloysius College(Autonomous), Mangalore).
- To provide an easy to use web application for maintaining and conducting college elections.
- Secure the voting process by providing 2-factor user authentication, anonymity of the votes.
- Student
- Admin:
- Class Guides
- EC/CC Club Heads
- Student Council Coordinators
- Super-Admin:
- IT Administrators
- 2-Factor Authentication is implemented. OTP is sent to the user's email during login for verification.
- Votes are completely anonymous. There will be no connection between the voter and the candidate after voting, not even in the database.
- Users are restricted to a single concurrent session(i.e, a user cannot be logged in from 2 devices at the same time).
- It has a modular approach, elections among students can be conducted for any purpose.
- Elections can be gender-specific(results will be generated separately for Male, Female and Others).
- Testing is not done :(