This project is a continuation of the Board Project developed during the DecolaTech 2025 bootcamp. The following modifications have been implemented:
- π Migrated the project from Gradle to Maven
- π οΈ Added support for multiple database connections
- π§ͺ Implemented specific configurations for test databases
- β Included service layer tests
- π Created new services, such as
findAll()
anddeleteAll()
- π― Improved input handling during menu navigation
DecolaTech 2025 is a bootcamp organized through a collaboration between DIO and Avanade. The program aims to equip participants with essential skills in full-stack development using Spring Boot and Angular, while also providing foundational knowledge in Artificial Intelligence and Azure for efficient deployment.
Upon completion, participants have the opportunity to apply for paid internships at Avanade.
- β Create a new board with a custom name and columns
- β Select an existing board for management
- β Delete boards stored in the MySQL database
- β Each board has at least 3 columns (Initial, Final, and Cancellation)
- β Support for multiple "Pending" columns
- β Automatic enforcement of column ordering rules
- β Create cards with title, description, creation date, and block status
- β Move cards while respecting column order
- β Cancel cards from any column (except the final one)
- β Block and unblock cards with justification
- β Interactive menu-based CLI for board and card management
- β Navigate through options with easy-to-use commands
- β Perform all board and card operations directly from the terminal
π‘ More features coming soon! π
βββ kanban/
βββ mvnw
βββ mvnw.cmd
βββ pom.xml
βββ src
βββ main
βββ test
Make sure you have the following tools and environments set up:
-
This project uses Java 17. Download the latest version from AdoptOpenJDK.
-
Verify Java installation with:
java -version
-
Maven is used to manage dependencies and build the project. Install it by following the instructions on Mavenβs official site.
-
Verify installation with:
mvn -v
- MySQL is used for the database. Install it or use Docker for setup.
- Docker can be used to set up the database in containers. Follow Dockerβs installation guide.
Follow these steps to install and run the project locally:
Clone the repository to your local machine:
git clone https://github.com/gsmereka/kanban
Go to the project folder:
cd kanban
If MySQL is not installed locally, use Docker to set up the database.
Production Database:
version: '3.8'
services:
db:
image: mysql:8.3.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: board
MYSQL_PASSWORD: board
MYSQL_DATABASE: board
ports:
- "3306:3306"
Test Database:
version: '3.8'
services:
db:
image: mysql:8.3.0
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: KanbanTest
MYSQL_PASSWORD: KanbanTest
MYSQL_DATABASE: KanbanTest
ports:
- "9898:3306"
-
Start Containers:
docker-compose up -d
-
Check Containers:
docker ps
Alternatively, manually install MySQL and create two databases: board
(production) and KanbanTest
(test).
In the project directory, run:
mvn install
Edit the application.properties
or application.yml
file for database credentials or connection URLs.
Start the application with:
mvn exec:java
This will launch the app locally, and you can use the CLI to interact with boards and cards.
Kanban uses the {test_framework} test framework. Run the test suite with:
Using maven:
mvn test
- π¬ Join the Discussions: Share your insights, provide feedback, or ask questions.
- π Report Issues: Submit bugs found or log feature requests for the
kanban
project. - π‘ Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/gsmereka/kanban
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!