6
Technical future
Andreas Svanberg edited this page 2025-03-18 16:03:38 +01:00

💚 = work actively towards 🔴 = should not do 〰️ = no opinion 😃 = agree

Suggestion Andreas Nico Tom
DataInitializer needs to be refactored () 💚 💚 💚
Replace java.util.Date with java.time 💚 💚 💚
Update wiki with onboarding information 💚 💚 💚
Update wiki with way of working information (wiki page) 💚 💚 💚
--- --- --- ---
Remove all database operations (JPA) from services and delegate to repositories 💚 💚 💚
Stop with the "1 table-1 entity-1 repository-1 service" thing 💚 💚 💚
Replace Jersey (JAX-RS client) with Spring's RestClient 💚 💚 💚
Remove stack traces from Maven test output 💚 💚 💚
Fix all warnings during Maven build 💚 💚 💚
Stop using DomainObjects dateCreated and lastModified for business logic 💚 💚 💚
--- --- --- ---
Never return @Entity classes from services 💚 💚 💚
No Jakarta Persistence API usage in core Maven module 💚 💚 💚
--- --- --- ---
Replace Wicket with Spring Web + Thymeleaf + Htmx 😃 😃 😃
Better modularization is needed in Scipro, it has too much stuff in core module 💚 〰️ 💚
Use whitelist to manage dependencies, and only include dependencies we use 🔴 🔴 😃
User interface needs a better organization, it's not obvious to see "intention and action" 😃 😃 😃
Must repository layer be implemented with JPA. Why not consider a more SQL-native approach like jOOQ 💚 😃 💚
Go all-in on Spring 〰️ 😃 〰️
Merge Maven modules 🔴 〰️ 🔴
Remove manual processes 💚 💚 😃
Add a Maven mirror/repository 😃 😃 😃
Never return @Entity classes from repositories 💚 💚 😃
Remove manual transaction handling inside workers (AbstractWorker base class) 😃 😃 😃
Make all notifications event-based rather than direct calls from other service methods 😃 😃 〰️
Make event handling asynchronous (such that a failure or slowdown in an event consumer does not interfere with the event producer) 🔴 〰️ 🔴
Introduce automated Checkstyle analysis with no allowed violations () 💚 💚 〰️
Use Spring Boot Maven plugin / main method to start SciPro 😃 😃 😃
Use a local database running in Docker 😃 😃 🔴
Create a mock Docker container for Daisy API 😃 😃 😃
Try to minimize / move to edges the Daisy integration to make as much functionality as possible useable without it 💚 😃 💚
Make it easier to schedule new jobs 😃 😃 〰️
Replace Wicket with Spring Web (REST API) + React (TypeScript) 😃 🔴 🔴
Automatic deployment to production after pull request is merged 😃 〰️ 🔴
Do not accept null as a method parameter 😃 😃 😃
Do not return null 😃 😃 😃
Do not use repositories directly in Wicket components 💚 😃 💚
"Make the change easy then make the easy change" 💚 😃 😃
Add UI tests (like Selenium/Upright) 😃 😃 😃