Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Consensus

Consensus is a Java-based backend platform for creating and managing voting systems. It follows Domain-Driven Design (DDD) principles and a component-driven architecture, making it modular, maintainable, and scalable.


🚀 Features (Initial Version)

  • User registration and login (Auth module)
  • Secure password hashing with BCrypt
  • Clean project skeleton using DDD
  • Shared configuration ready for JWT and other modules

⚙️ Tech Stack

  • Java 25
  • Spring Boot
  • PostgreSQL (via JPA/Hibernate)
  • Maven
  • Docker (for DB and future deployment)
  • JUnit 5 + Testcontainers (testing)

🏗 Getting Started

Prerequisites

  • Java 21+
  • Maven
  • PostgreSQL or Docker for DB

Run Locally

  1. Clone the repository:

git clone https://github.com/<your-username>/consensus.git cd consensus

  1. Start PostgreSQL (Docker recommended):

docker run --name consensus-db -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres

  1. Build and run the app:

mvn clean install mvn spring-boot:run

  1. API endpoints:
  • POST /auth/register → Register new user
  • POST /auth/login → Login

📝 License

This project is open-source under the MIT License.
See LICENSE for details.


⚡ Contribution

  • Fork the repository
  • Create a new branch (feature/your-feature)
  • Commit your changes (git commit -m "Add new feature")
  • Push to the branch (git push origin feature/your-feature)
  • Open a Pull Request

About

Consensus is a flexible, secure, and extensible voting system that enables organizations and communities to create custom polls and elections with multiple voting strategies and full transparency.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages