Skip to content

chipolaris/BootForum2

Repository files navigation

README.md

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

Main Stacks

Back End

  • 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

Front End

  • Angular
  • PrimeNG / PrimeIcons
  • Tailwind CSS / HeroIcons

Other

  • JWT security library
  • Maven build tool

Development Process

More Details

Front end and back end projects are started separately

Start Spring Boot backend

From project's root folder:

./mvnw spring-boot:run

Backend app is run on http://localhost:8080 by default

Start Angular frontend

From main/ngapp folder:

ng serve

Frontend app is run on http://localhost:4200 by default

Packaging for Deployment

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

Database

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

Persistence Storage Configuration

  • 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

About

Web forum with Spring Boot, Angular, PrimeNG, and Tailwind CSS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published