diff --git a/.gitignore b/.gitignore
index 4c49bd7..156fc15 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,2 @@
.env
+*.db
diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Remindify.iml b/.idea/Remindify.iml
new file mode 100644
index 0000000..d6ebd48
--- /dev/null
+++ b/.idea/Remindify.iml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..639900d
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..8e67e98
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..35eb1dd
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/remindify-backend/data/remindify-new.mv.db b/remindify-backend/data/remindify-new.mv.db
new file mode 100644
index 0000000..239eb97
Binary files /dev/null and b/remindify-backend/data/remindify-new.mv.db differ
diff --git a/remindify-backend/data/remindify.mv.db b/remindify-backend/data/remindify.mv.db
new file mode 100644
index 0000000..7899027
Binary files /dev/null and b/remindify-backend/data/remindify.mv.db differ
diff --git a/remindify-backend/data/remindify.trace.db b/remindify-backend/data/remindify.trace.db
new file mode 100644
index 0000000..0f35733
--- /dev/null
+++ b/remindify-backend/data/remindify.trace.db
@@ -0,0 +1,319 @@
+2025-09-17 21:45:26.641352+02:00 database: wrong user or password; user: "SA"
+org.h2.message.DbException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.get(DbException.java:223)
+ at org.h2.message.DbException.get(DbException.java:199)
+ at org.h2.message.DbException.get(DbException.java:188)
+ at org.h2.engine.Engine.openSession(Engine.java:154)
+ at org.h2.engine.Engine.openSession(Engine.java:222)
+ at org.h2.engine.Engine.createSession(Engine.java:201)
+ at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344)
+ at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124)
+ at org.h2.Driver.connect(Driver.java:59)
+ at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144)
+ at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370)
+ at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207)
+ at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488)
+ at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576)
+ at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97)
+ at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485)
+ at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81)
+ at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
+ at org.hibernate.boot.model.relational.Database.(Database.java:45)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194)
+ at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
+Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:522)
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
+ ... 57 more
+2025-09-17 21:45:45.517166+02:00 database: wrong user or password; user: "USERNAME"
+org.h2.message.DbException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.get(DbException.java:223)
+ at org.h2.message.DbException.get(DbException.java:199)
+ at org.h2.message.DbException.get(DbException.java:188)
+ at org.h2.engine.Engine.openSession(Engine.java:154)
+ at org.h2.engine.Engine.openSession(Engine.java:222)
+ at org.h2.engine.Engine.createSession(Engine.java:201)
+ at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344)
+ at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124)
+ at org.h2.Driver.connect(Driver.java:59)
+ at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144)
+ at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370)
+ at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207)
+ at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488)
+ at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576)
+ at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97)
+ at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485)
+ at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81)
+ at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
+ at org.hibernate.boot.model.relational.Database.(Database.java:45)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194)
+ at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
+Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:522)
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
+ ... 57 more
+2025-09-17 21:46:52.411529+02:00 database: wrong user or password; user: "SA"
+org.h2.message.DbException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.get(DbException.java:223)
+ at org.h2.message.DbException.get(DbException.java:199)
+ at org.h2.message.DbException.get(DbException.java:188)
+ at org.h2.engine.Engine.openSession(Engine.java:154)
+ at org.h2.engine.Engine.openSession(Engine.java:222)
+ at org.h2.engine.Engine.createSession(Engine.java:201)
+ at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344)
+ at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124)
+ at org.h2.Driver.connect(Driver.java:59)
+ at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144)
+ at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370)
+ at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207)
+ at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488)
+ at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576)
+ at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97)
+ at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485)
+ at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81)
+ at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
+ at org.hibernate.boot.model.relational.Database.(Database.java:45)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194)
+ at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
+Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:522)
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
+ ... 57 more
+2025-09-17 21:48:13.953931+02:00 database: wrong user or password; user: "SA"
+org.h2.message.DbException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.get(DbException.java:223)
+ at org.h2.message.DbException.get(DbException.java:199)
+ at org.h2.message.DbException.get(DbException.java:188)
+ at org.h2.engine.Engine.openSession(Engine.java:154)
+ at org.h2.engine.Engine.openSession(Engine.java:222)
+ at org.h2.engine.Engine.createSession(Engine.java:201)
+ at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344)
+ at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124)
+ at org.h2.Driver.connect(Driver.java:59)
+ at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144)
+ at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370)
+ at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207)
+ at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488)
+ at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576)
+ at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97)
+ at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485)
+ at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:334)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:129)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:81)
+ at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238)
+ at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215)
+ at org.hibernate.boot.model.relational.Database.(Database.java:45)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:226)
+ at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.(InFlightMetadataCollectorImpl.java:194)
+ at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:171)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1442)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1513)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
+Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:522)
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
+ ... 57 more
+2025-09-17 21:48:16.043377+02:00 database: wrong user or password; user: "SA"
+org.h2.message.DbException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.get(DbException.java:223)
+ at org.h2.message.DbException.get(DbException.java:199)
+ at org.h2.message.DbException.get(DbException.java:188)
+ at org.h2.engine.Engine.openSession(Engine.java:154)
+ at org.h2.engine.Engine.openSession(Engine.java:222)
+ at org.h2.engine.Engine.createSession(Engine.java:201)
+ at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:344)
+ at org.h2.jdbc.JdbcConnection.(JdbcConnection.java:124)
+ at org.h2.Driver.connect(Driver.java:59)
+ at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:144)
+ at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:370)
+ at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:207)
+ at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:488)
+ at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:576)
+ at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:97)
+ at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111)
+ at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:126)
+ at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:485)
+ at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:46)
+ at org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl.getIsolatedConnection(DdlTransactionIsolatorNonJtaImpl.java:39)
+ at org.hibernate.tool.schema.internal.exec.ImprovedExtractionContextImpl.getJdbcConnection(ImprovedExtractionContextImpl.java:63)
+ at org.hibernate.tool.schema.extract.spi.ExtractionContext.getQueryResults(ExtractionContext.java:43)
+ at org.hibernate.tool.schema.extract.internal.SequenceInformationExtractorLegacyImpl.extractMetadata(SequenceInformationExtractorLegacyImpl.java:39)
+ at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.initializeSequences(DatabaseInformationImpl.java:66)
+ at org.hibernate.tool.schema.extract.internal.DatabaseInformationImpl.(DatabaseInformationImpl.java:60)
+ at org.hibernate.tool.schema.internal.Helper.buildDatabaseInformation(Helper.java:185)
+ at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:93)
+ at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:280)
+ at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.lambda$process$5(SchemaManagementToolCoordinator.java:144)
+ at java.base/java.util.HashMap.forEach(HashMap.java:1430)
+ at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:141)
+ at org.hibernate.boot.internal.SessionFactoryObserverForSchemaExport.sessionFactoryCreated(SessionFactoryObserverForSchemaExport.java:37)
+ at org.hibernate.internal.SessionFactoryObserverChain.sessionFactoryCreated(SessionFactoryObserverChain.java:35)
+ at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:324)
+ at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:463)
+ at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1517)
+ at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:66)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419)
+ at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400)
+ at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1873)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1822)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607)
+ at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339)
+ at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:373)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337)
+ at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:207)
+ at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970)
+ at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627)
+ at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146)
+ at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:752)
+ at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:318)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1361)
+ at org.springframework.boot.SpringApplication.run(SpringApplication.java:1350)
+ at masecla.remindify.RemindifyApplication.main(RemindifyApplication.java:10)
+ at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
+ at java.base/java.lang.reflect.Method.invoke(Method.java:580)
+ at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50)
+Caused by: org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-232]
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:522)
+ at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
+ ... 61 more
diff --git a/remindify-backend/pom.xml b/remindify-backend/pom.xml
index c6c3076..da0c7dc 100644
--- a/remindify-backend/pom.xml
+++ b/remindify-backend/pom.xml
@@ -57,6 +57,20 @@
jsoup
1.21.2
+
+ com.h2database
+ h2
+ runtime
+
+
+ com.mysql
+ mysql-connector-j
+ runtime
+
+
+ org.springframework.boot
+ spring-boot-starter-data-jpa
+
diff --git a/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java b/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java
index 7cf87d1..38fde50 100644
--- a/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java
+++ b/remindify-backend/src/main/java/masecla/remindify/dto/TaskDto.java
@@ -1,9 +1,17 @@
package masecla.remindify.dto;
+import jakarta.persistence.Entity;
+import jakarta.persistence.GeneratedValue;
+import jakarta.persistence.GenerationType;
+import jakarta.persistence.Id;
import lombok.Data;
@Data
+@Entity
public class TaskDto {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private Long id;
private String task;
private String description;
private String dueDate;
diff --git a/remindify-backend/src/main/java/masecla/remindify/repository/TaskRepository.java b/remindify-backend/src/main/java/masecla/remindify/repository/TaskRepository.java
new file mode 100644
index 0000000..b85cd74
--- /dev/null
+++ b/remindify-backend/src/main/java/masecla/remindify/repository/TaskRepository.java
@@ -0,0 +1,7 @@
+package masecla.remindify.repository;
+
+import masecla.remindify.dto.TaskDto;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface TaskRepository extends JpaRepository {
+}
diff --git a/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java b/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java
index 9131c3f..ad8c19d 100644
--- a/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java
+++ b/remindify-backend/src/main/java/masecla/remindify/services/TaskConsumerService.java
@@ -2,6 +2,7 @@
import java.util.Map;
+import masecla.remindify.repository.TaskRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -16,12 +17,14 @@
public class TaskConsumerService {
private Map availableConsumers;
+ private TaskService taskService;
public void registerConsumer(String listType, TaskConsumer consumer) {
availableConsumers.put(listType, consumer);
}
public void broadcastTask(TaskDto task){
+ taskService.saveTask(task);
for (TaskConsumer consumer : availableConsumers.values()) {
try {
consumer.sendTaskToList(task);
diff --git a/remindify-backend/src/main/java/masecla/remindify/services/TaskService.java b/remindify-backend/src/main/java/masecla/remindify/services/TaskService.java
new file mode 100644
index 0000000..e1af915
--- /dev/null
+++ b/remindify-backend/src/main/java/masecla/remindify/services/TaskService.java
@@ -0,0 +1,21 @@
+package masecla.remindify.services;
+
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import masecla.remindify.dto.TaskDto;
+import masecla.remindify.repository.TaskRepository;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+@AllArgsConstructor(onConstructor_ = @Autowired)
+public class TaskService {
+
+ private TaskRepository taskRepository;
+
+ public void saveTask(TaskDto task) {
+ TaskDto persisted = task.getId() == null ? taskRepository.save(task) : task;
+ log.info("Task with id {} has been created.", persisted.getId());
+ }
+}
diff --git a/remindify-backend/src/main/resources/application.properties b/remindify-backend/src/main/resources/application.properties
index 137cec3..f839bde 100644
--- a/remindify-backend/src/main/resources/application.properties
+++ b/remindify-backend/src/main/resources/application.properties
@@ -1,2 +1,12 @@
spring.application.name=remindify
-todoist.api.token=your_todoist_api_token_here
\ No newline at end of file
+todoist.api.token=your_todoist_api_token_here
+
+spring.datasource.url=jdbc:h2:file:./data/remindify-new
+spring.datasource.driver-class-name=org.h2.Driver
+spring.datasource.username=username
+spring.datasource.password=password
+
+spring.jpa.hibernate.ddl-auto=update
+
+spring.h2.console.enabled=true
+spring.h2.console.path=/h2-console