Vox: Freedom is a lightweight Spring Boot application for creating and viewing posts with user authentication, CRUD operations, and transactional support across multiple tables.
- Clone the repository:
git clone <repository-url>
cd vox-
Configure your database credentials in
application.properties(see Configuration) -
Run the application:
- Linux / MacOS:
./mvnw spring-boot:run- Windows (PowerShell / Command Prompt):
mvnw.cmd spring-boot:run- Open http://localhost:8080 in your browser
- User authentication & authorization
- CRUD operations for posts
- Transactional operations spanning multiple tables
| Tool | Required Version | Installation Notes |
|---|---|---|
| Java | 21 | Download |
| Maven | Latest | Install |
| MariaDB | 10+ | Download |
Clone the repository and run the application:
- Linux / MacOS:
git clone <repository-url>
cd vox
./mvnw spring-boot:run- Windows (PowerShell / CMD):
git clone <repository-url>
cd vox
mvnw.cmd spring-boot:runsudo apt update
sudo apt install mariadb-server mariadb-client -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
sudo mariadb -u root -pInside the MariaDB shell:
CREATE DATABASE freedomwall;
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON freedomwall.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
EXIT;- Download and install MariaDB: MariaDB Downloads
- Ensure the
MariaDBservice is running - Open MariaDB Command Line Client or
cmd:
CREATE DATABASE freedomwall;
CREATE USER 'your_username'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON freedomwall.* TO 'your_username'@'localhost';
FLUSH PRIVILEGES;
EXIT;Set database connection and JPA options in application.properties:
spring.datasource.url=jdbc:mariadb://localhost:3306/freedomwall
spring.datasource.username=<your-username>
spring.datasource.password=<your-password>
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.hibernate.ddl-auto=updateOther settings such as server port and security options can also be configured here.
- Navigate to http://localhost:8080
- Register a new account and log in
- Create, read, update, or delete posts
- Browse posts created by other users
All interactions occur through the web interface; no public API endpoints are provided.
- Fork the repository
- Create a new branch (
git checkout -b feature/YourFeature) - Commit your changes (
git commit -m "Add some feature") - Push to the branch (
git push origin feature/YourFeature) - Submit a pull request