Build and grow your community with BootForum2. The forum application is lightweight and can be run in an EC2 instance with 2GB of memory (with embedded H2 database). But this application can also be run in any JDBC-compliant database (Oracle, Postgresql, MySQL, SQL Server, etc).
BootForum2 is a modern implementation of Web based discussion forum using Spring Boot 3 and Angular 19 as main development frameworks. Development is done through Prompt Engineering with Google's Gemini Code Assist. In addition, ChatGPT is used for more generic questions
* This application is currently in active development
- Spring:
- Spring Boot
- Spring Web
- Spring Security
- Spring Data (JPA)
- JPA/Hibernate/H2 (for development). Any JDBC compliant database can be used for deployment (Postgresql, Oracle, MySql, MS SQL Server, etc.). More details
 
- Angular
- PrimeNG / PrimeIcons
- Tailwind CSS / HeroIcons
- JWT security library
- Maven build tool
Front end and back end projects are started separately
From project's root folder:
./mvnw spring-boot:run
Backend app is run on http://localhost:8080 by default
From main/ngapp folder:
ng serve
Frontend app is run on http://localhost:4200 by default
From project's root folder:
./mvnw package
If no error, a runnable jar file, BootForum2-0.0.1-SNAPSHOT.jar, is created in the target directory The runnable jar file can be executed with
java -jar BootForum2-0.0.1-SNAPSHOT.jar
For convenient of development, the default database (configured in application.yml) is H2. On deployment, any JDBC compliant database can be used: Postgresql, Oracle, MySql, MS SQL Server, etc. And as usual in Spring Boot fashion, the database properties can be specified externally through runtime properties file or command line arguments. For example:
java -jar BootForum2-0.0.1-SNAPSHOT.jar --spring.datasource.url=jdbc:postgresql://localhost:5432/mydb \
  --spring.datasource.username=pguser --spring.datasource.password=pgpass \
  --spring.datasource.driver-class-name=org.postgresql.Driver
More references: https://docs.spring.io/spring-boot/reference/features/external-config.html
- The default local H2 datastore is at ${user.home}/BootForum2/h2/data directory.
- The default upload directory where users' attachments and images are uploaded is at ${user.home}/BootForum2/uploads
- The default Lucene data directory where search data is at ${user.home}/BootForum2/data
And as usual, individual runtime paramters/properties can be overwritten/configured. application.yml or application.properties file can be specified through command line arguments. More references about this https://docs.spring.io/spring-boot/reference/features/external-config.html