Code Monkey home page Code Monkey logo

snapp-voting's Introduction

Snapp Voting

Introduction

Simple high-performance Voting API backend built with Go (gin ๐Ÿธ) and PostgreSQL.

Features

  • JWT Authentication: Securely authenticate users and protect your endpoints.
  • User Management: Register, get, and update user profiles.
  • Voting System: Users can vote for their favorite option.
  • Middleware Support: Enhance and simplify HTTP request handling.
  • Minio Storage Integration: Store and retrieve files efficiently with Minio.
  • Error Management with Sentry

Prerequisites

  • Go
  • PostgreSQL
  • Minio Server

Setup & Installation

  1. Install Go

    brew install go
  2. Set Up Environment Variables Create a .env file in the root directory and fill in the necessary details:

    DB_HOST=localhost
    DB_USER=your_db_user
    DB_PASS=your_db_password
    DB_NAME=voting_db
    
    JWT_SECRET=<your_jwt_secret>
    
    MINIO_STORAGE_ENDPOINT=<minio.yourdomain.com>
    MINIO_STORAGE_ACCESS=<your_minio_access_key>
    MINIO_STORAGE_SECRET=<your_minio_secret_key>
    
  3. Install Dependencies

    go mod download
  4. Run the Server

    go run main.go

Middlewares

  • Authentication: Ensures that the user is authenticated using JWT.
  • Other middlewares can be added as well (like logging, etc.)

License

This project is licensed under the MIT License.


Happy Voting!

snapp-voting's People

Contributors

parsa-mz avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.