Planning Poker is a collaborative game used in Agile software development to estimate the effort required for tasks or features. By playing this game, teams can reach a consensus on task complexity in a fun, efficient, and democratic way.
This project provides a digital implementation of the Planning Poker technique, making it easy for Agile teams to estimate tasks remotely or in person.
The application supports localization in three languages: English, Ukrainian, and Swedish, allowing teams from different regions to use it seamlessly.
Accurate task estimation is essential for successful project management in Agile environments. Poor estimates can lead to:
- Missed deadlines
- Ineffective resource allocation
- Unclear project expectations
Planning Poker solves these issues by:
- Promoting collaboration: Every team member contributes to the estimation process.
- Reducing bias: Estimates are made anonymously, preventing dominant voices from influencing others.
- Improving accuracy: A collective approach ensures more accurate estimations and early risk detection.
- Making estimation fun: The game-like format reduces stress, making the process more enjoyable for the team.
- Java 17: The programming language for the application.
- Spring Boot:
- Spring Data JPA: For database interactions.
- Spring Security: For authentication and authorization.
- Spring Web: For REST APIs and web services.
- Spring WebSocket: To support real-time communication.
- Spring Events: For event-driven architecture.
- PostgreSQL: Relational database for data storage.
- Flyway: Database migration tool for version control.
- Thymeleaf: Template engine for dynamic HTML rendering.
- WebJars: For managing JavaScript and CSS dependencies.
- Bootstrap: For responsive design.
- jQuery: For dynamic front-end interactions.
- Moment.js: For date and time formatting.
- Lombok: Reduces boilerplate code with annotations.
- MapStruct: For object mapping between layers.
- JUnit: For unit and integration testing.
- Mockito: For mocking dependencies in tests.
- TestContainers: For testing with PostgreSQL in isolated containers.
- FixtureMonkey: Fixture Monkey generates objects with random data, making your tests faster and easier to write. Documentation
- Docker: To containerize the application and ensure consistency across environments.
- Hibernate: For object-relational mapping.
- Gradle: Build automation tool for managing dependencies and tasks.
Follow these steps to set up and run the project:
Clone the repository to your local machine using SSH:
git clone git@github.com:Volodymyr-Petrunin/Rock-Paper-Scissors.git
Run the following command to clean and build the project:
./gradlew clean build
Make sure Docker is running.
Use Docker Compose to bring up the containers.
docker-compose -f ./docker/docker-compose.yml up
Go to http://localhost:8080/ in your browser.
Use the following credentials to log in to the application:
Password | |
---|---|
admin@example.com | adminPASS_ |
user@example.com | userPASS_ |
user2@example.com | user2PASS_ |
user3@example.com | user3PASS_ |
For any questions or feedback, feel free to reach out:
- LinkedIn: LinkedIn Profile
- Instagram: Instagram Profile
- Email: petruninvolodymyr@gmail.com
- Telegram: Telegram Profile
- GitHub: GitHub Profile
Additional screenshots with different localizations are available in the /docs/screenshots
folder.
Feel free to explore them for a deeper understanding of the application's functionality!