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.
- User registration and login (Auth module)
- Secure password hashing with BCrypt
- Clean project skeleton using DDD
- Shared configuration ready for JWT and other modules
- Java 25
- Spring Boot
- PostgreSQL (via JPA/Hibernate)
- Maven
- Docker (for DB and future deployment)
- JUnit 5 + Testcontainers (testing)
- Java 21+
- Maven
- PostgreSQL or Docker for DB
- Clone the repository:
git clone https://github.com/<your-username>/consensus.git cd consensus
- Start PostgreSQL (Docker recommended):
docker run --name consensus-db -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres
- Build and run the app:
mvn clean install mvn spring-boot:run
- API endpoints:
- POST /auth/register → Register new user
- POST /auth/login → Login
This project is open-source under the MIT License.
See LICENSE for details.
- 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