A JavaFX-based stock portfolio management application with PostgreSQL/Supabase backend.
This project uses PostgreSQL via Supabase for cloud database hosting.
- Java 21
- Maven (included via wrapper)
- Supabase account (free tier works)
./mvnw clean compile./mvnw clean javafx:run- Admin:
admin,admin123 - Demo Trader:
demo,demo123
- Cause: File doesn't exist or is in wrong location
- Fix: Ensure file exists at
src/main/resources/db.properties
- Cause: Wrong connection details or network issue
- Fix:
- Verify your Supabase project is active (not paused)
- Check connection string has
db.prefix:db.YOUR_REF.supabase.co - Ensure
db.ssl=trueis set - Check your firewall/network settings
- Cause: Wrong password in
db.properties - Fix: Reset password in Supabase Dashboard → Settings → Database
- Cause: Database connection issue during initialization
- Fix: Check console output for error messages starting with "Error initializing database"
src/main/java/com/example/stock_visualiser/
├── dao/ # Data Access Objects (interfaces)
│ └── impl/ # DAO implementations
├── database/ # DatabaseManager & TransactionManager
├── model/ # Domain models (User, Stock, Portfolio, etc.)
├── service/ # Business logic (AuthenticationService)
├── controller/ # JavaFX controllers
├── util/ # Utilities (SceneManager)
└── view/ # FXML files (in resources)
- ✅ User authentication with BCrypt password hashing
- ✅ Role-based access (Admin/Trader)
- ✅ DAO pattern for clean database abstraction
- ✅ HikariCP connection pooling
- ✅ Transaction management
- ✅ PostgreSQL/Supabase cloud database
- Frontend: JavaFX 21
- Backend: Java 21
- Database: PostgreSQL (Supabase)
- Build Tool: Maven
- Connection Pool: HikariCP
- Security: BCrypt password hashing