Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions pom-dependency-tree.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
ai.elimu:webapp:war:2.6.71-SNAPSHOT
+- ai.elimu:model:jar:model-2.0.113:compile
ai.elimu:webapp:war:2.6.73-SNAPSHOT
+- ai.elimu:model:jar:model-2.0.114:compile
| \- com.google.code.gson:gson:jar:2.13.1:compile
| \- com.google.errorprone:error_prone_annotations:jar:2.38.0:compile
+- org.springframework:spring-context:jar:6.0.9:compile
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<properties>
<java.version>17</java.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<model.version>2.0.113</model.version>
<model.version>2.0.114</model.version>
<hibernate.version>6.1.7.Final</hibernate.version>
<jetty.version>11.0.24</jetty.version>
<spring.version>6.0.9</spring.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
import org.springframework.dao.DataAccessException;

import ai.elimu.entity.analytics.LetterSoundAssessmentEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

public interface LetterSoundAssessmentEventDao extends GenericDao<LetterSoundAssessmentEvent> {

LetterSoundAssessmentEvent read(Calendar timestamp, String androidId, String packageName) throws DataAccessException;

List<LetterSoundAssessmentEvent> readAll(String androidId) throws DataAccessException;

List<LetterSoundAssessmentEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup) throws DataAccessException;
}
4 changes: 4 additions & 0 deletions src/main/java/ai/elimu/dao/LetterSoundLearningEventDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
import org.springframework.dao.DataAccessException;

import ai.elimu.entity.analytics.LetterSoundLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

public interface LetterSoundLearningEventDao extends GenericDao<LetterSoundLearningEvent> {

LetterSoundLearningEvent read(Calendar time, String androidId, String packageName) throws DataAccessException;

List<LetterSoundLearningEvent> readAll(String androidId) throws DataAccessException;

List<LetterSoundLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup) throws DataAccessException;
}
4 changes: 4 additions & 0 deletions src/main/java/ai/elimu/dao/NumberLearningEventDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
import org.springframework.dao.DataAccessException;

import ai.elimu.entity.analytics.NumberLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

public interface NumberLearningEventDao extends GenericDao<NumberLearningEvent> {

NumberLearningEvent read(Calendar time, String androidId, String packageName) throws DataAccessException;

List<NumberLearningEvent> readAll(String androidId) throws DataAccessException;

List<NumberLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup) throws DataAccessException;
}
4 changes: 4 additions & 0 deletions src/main/java/ai/elimu/dao/StoryBookLearningEventDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
import org.springframework.dao.DataAccessException;

import ai.elimu.entity.analytics.StoryBookLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

public interface StoryBookLearningEventDao extends GenericDao<StoryBookLearningEvent> {

Expand All @@ -13,4 +15,6 @@ public interface StoryBookLearningEventDao extends GenericDao<StoryBookLearningE
List<StoryBookLearningEvent> readAllOrderedByTime() throws DataAccessException;

List<StoryBookLearningEvent> readAll(String androidId) throws DataAccessException;

List<StoryBookLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup) throws DataAccessException;
}
3 changes: 3 additions & 0 deletions src/main/java/ai/elimu/dao/StoryBookParagraphDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@

import org.springframework.dao.DataAccessException;

import ai.elimu.entity.content.StoryBook;
import ai.elimu.entity.content.StoryBookChapter;
import ai.elimu.entity.content.StoryBookParagraph;

public interface StoryBookParagraphDao extends GenericDao<StoryBookParagraph> {

List<StoryBookParagraph> readAll(StoryBookChapter storyBookChapter) throws DataAccessException;

List<StoryBookParagraph> readAll(StoryBook storyBook) throws DataAccessException;

List<StoryBookParagraph> readAllContainingWord(String wordText) throws DataAccessException;
}
4 changes: 4 additions & 0 deletions src/main/java/ai/elimu/dao/VideoLearningEventDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import ai.elimu.dao.enums.OrderDirection;
import ai.elimu.entity.analytics.VideoLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

import java.util.Calendar;
import java.util.List;
Expand All @@ -15,4 +17,6 @@ public interface VideoLearningEventDao extends GenericDao<VideoLearningEvent> {
List<VideoLearningEvent> readAllOrderedByTimestamp(OrderDirection orderDirection) throws DataAccessException;

List<VideoLearningEvent> readAll(String androidId) throws DataAccessException;

List<VideoLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup) throws DataAccessException;
}
4 changes: 4 additions & 0 deletions src/main/java/ai/elimu/dao/WordAssessmentEventDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
import org.springframework.dao.DataAccessException;

import ai.elimu.entity.analytics.WordAssessmentEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

public interface WordAssessmentEventDao extends GenericDao<WordAssessmentEvent> {

WordAssessmentEvent read(Calendar timestamp, String androidId, String packageName) throws DataAccessException;

List<WordAssessmentEvent> readAll(String androidId) throws DataAccessException;

List<WordAssessmentEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup) throws DataAccessException;
}
4 changes: 4 additions & 0 deletions src/main/java/ai/elimu/dao/WordLearningEventDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,14 @@
import org.springframework.dao.DataAccessException;

import ai.elimu.entity.analytics.WordLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

public interface WordLearningEventDao extends GenericDao<WordLearningEvent> {

WordLearningEvent read(Calendar time, String androidId, String packageName) throws DataAccessException;

List<WordLearningEvent> readAll(String androidId) throws DataAccessException;

List<WordLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup) throws DataAccessException;
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

import ai.elimu.dao.LetterSoundAssessmentEventDao;
import ai.elimu.entity.analytics.LetterSoundAssessmentEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;
import jakarta.persistence.NoResultException;

public class LetterSoundAssessmentEventDaoJpa extends GenericDaoJpa<LetterSoundAssessmentEvent> implements LetterSoundAssessmentEventDao {
Expand Down Expand Up @@ -40,4 +42,18 @@ public List<LetterSoundAssessmentEvent> readAll(String androidId) throws DataAcc
.setParameter("androidId", androidId)
.getResultList();
}

@Override
public List<LetterSoundAssessmentEvent> readAll(ResearchExperiment researchExperiment,
ExperimentGroup experimentGroup) throws DataAccessException {
return em.createQuery(
"SELECT event " +
"FROM LetterSoundAssessmentEvent event " +
"WHERE event.researchExperiment = :researchExperiment " +
"AND event.experimentGroup = :experimentGroup " +
"ORDER BY event.timestamp")
.setParameter("researchExperiment", researchExperiment)
.setParameter("experimentGroup", experimentGroup)
.getResultList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

import ai.elimu.dao.LetterSoundLearningEventDao;
import ai.elimu.entity.analytics.LetterSoundLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;
import jakarta.persistence.NoResultException;

public class LetterSoundLearningEventDaoJpa extends GenericDaoJpa<LetterSoundLearningEvent> implements LetterSoundLearningEventDao {
Expand Down Expand Up @@ -40,4 +42,18 @@ public List<LetterSoundLearningEvent> readAll(String androidId) throws DataAcces
.setParameter("androidId", androidId)
.getResultList();
}

@Override
public List<LetterSoundLearningEvent> readAll(ResearchExperiment researchExperiment,
ExperimentGroup experimentGroup) throws DataAccessException {
return em.createQuery(
"SELECT event " +
"FROM LetterSoundLearningEvent event " +
"WHERE event.researchExperiment = :researchExperiment " +
"AND event.experimentGroup = :experimentGroup " +
"ORDER BY event.timestamp")
.setParameter("researchExperiment", researchExperiment)
.setParameter("experimentGroup", experimentGroup)
.getResultList();
}
}
16 changes: 16 additions & 0 deletions src/main/java/ai/elimu/dao/jpa/NumberLearningEventDaoJpa.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import ai.elimu.dao.NumberLearningEventDao;
import ai.elimu.entity.analytics.NumberLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

import java.util.Calendar;
import java.util.List;
Expand Down Expand Up @@ -40,4 +42,18 @@ public List<NumberLearningEvent> readAll(String androidId) throws DataAccessExce
.setParameter("androidId", androidId)
.getResultList();
}

@Override
public List<NumberLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup)
throws DataAccessException {
return em.createQuery(
"SELECT event " +
"FROM NumberLearningEvent event " +
"WHERE event.researchExperiment = :researchExperiment " +
"AND event.experimentGroup = :experimentGroup " +
"ORDER BY event.timestamp")
.setParameter("researchExperiment", researchExperiment)
.setParameter("experimentGroup", experimentGroup)
.getResultList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import ai.elimu.dao.StoryBookLearningEventDao;
import ai.elimu.entity.analytics.StoryBookLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

import java.util.Calendar;
import java.util.List;
Expand Down Expand Up @@ -47,5 +49,19 @@ public List<StoryBookLearningEvent> readAll(String androidId) throws DataAccessE
"ORDER BY event.timestamp")
.setParameter("androidId", androidId)
.getResultList();
}

@Override
public List<StoryBookLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup)
throws DataAccessException {
return em.createQuery(
"SELECT event " +
"FROM StoryBookLearningEvent event " +
"WHERE event.researchExperiment = :researchExperiment " +
"AND event.experimentGroup = :experimentGroup " +
"ORDER BY event.timestamp")
.setParameter("researchExperiment", researchExperiment)
.setParameter("experimentGroup", experimentGroup)
.getResultList();
}
}
11 changes: 11 additions & 0 deletions src/main/java/ai/elimu/dao/jpa/StoryBookParagraphDaoJpa.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package ai.elimu.dao.jpa;

import ai.elimu.dao.StoryBookParagraphDao;
import ai.elimu.entity.content.StoryBook;
import ai.elimu.entity.content.StoryBookChapter;
import ai.elimu.entity.content.StoryBookParagraph;

Expand All @@ -22,6 +23,16 @@ public List<StoryBookParagraph> readAll(StoryBookChapter storyBookChapter) throw
.getResultList();
}

@Override
public List<StoryBookParagraph> readAll(StoryBook storyBook) throws DataAccessException {
return em.createQuery(
"SELECT paragraph " +
"FROM StoryBookParagraph paragraph " +
"WHERE paragraph.storyBookChapter.storyBook = :storyBook")
.setParameter("storyBook", storyBook)
.getResultList();
}

@Override
public List<StoryBookParagraph> readAllContainingWord(String wordText) throws DataAccessException {
return em.createQuery(
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/ai/elimu/dao/jpa/VideoLearningEventDaoJpa.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import ai.elimu.dao.VideoLearningEventDao;
import ai.elimu.dao.enums.OrderDirection;
import ai.elimu.entity.analytics.VideoLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

import java.util.Calendar;
import java.util.List;
Expand Down Expand Up @@ -50,4 +52,18 @@ public List<VideoLearningEvent> readAll(String androidId) throws DataAccessExcep
.setParameter("androidId", androidId)
.getResultList();
}

@Override
public List<VideoLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup)
throws DataAccessException {
return em.createQuery(
"SELECT event " +
"FROM VideoLearningEvent event " +
"WHERE event.researchExperiment = :researchExperiment " +
"AND event.experimentGroup = :experimentGroup " +
"ORDER BY event.timestamp")
.setParameter("researchExperiment", researchExperiment)
.setParameter("experimentGroup", experimentGroup)
.getResultList();
}
}
16 changes: 16 additions & 0 deletions src/main/java/ai/elimu/dao/jpa/WordAssessmentEventDaoJpa.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

import ai.elimu.dao.WordAssessmentEventDao;
import ai.elimu.entity.analytics.WordAssessmentEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;
import jakarta.persistence.NoResultException;

public class WordAssessmentEventDaoJpa extends GenericDaoJpa<WordAssessmentEvent> implements WordAssessmentEventDao {
Expand Down Expand Up @@ -40,4 +42,18 @@ public List<WordAssessmentEvent> readAll(String androidId) throws DataAccessExce
.setParameter("androidId", androidId)
.getResultList();
}

@Override
public List<WordAssessmentEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup)
throws DataAccessException {
return em.createQuery(
"SELECT event " +
"FROM WordAssessmentEvent event " +
"WHERE event.researchExperiment = :researchExperiment " +
"AND event.experimentGroup = :experimentGroup " +
"ORDER BY event.timestamp")
.setParameter("researchExperiment", researchExperiment)
.setParameter("experimentGroup", experimentGroup)
.getResultList();
}
}
16 changes: 16 additions & 0 deletions src/main/java/ai/elimu/dao/jpa/WordLearningEventDaoJpa.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import ai.elimu.dao.WordLearningEventDao;
import ai.elimu.entity.analytics.WordLearningEvent;
import ai.elimu.model.v2.enums.analytics.research.ExperimentGroup;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;

import java.util.Calendar;
import java.util.List;
Expand Down Expand Up @@ -40,4 +42,18 @@ public List<WordLearningEvent> readAll(String androidId) throws DataAccessExcept
.setParameter("androidId", androidId)
.getResultList();
}

@Override
public List<WordLearningEvent> readAll(ResearchExperiment researchExperiment, ExperimentGroup experimentGroup)
throws DataAccessException {
return em.createQuery(
"SELECT event " +
"FROM WordLearningEvent event " +
"WHERE event.researchExperiment = :researchExperiment " +
"AND event.experimentGroup = :experimentGroup " +
"ORDER BY event.timestamp")
.setParameter("researchExperiment", researchExperiment)
.setParameter("experimentGroup", experimentGroup)
.getResultList();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import ai.elimu.dao.VideoLearningEventDao;
import ai.elimu.dao.WordAssessmentEventDao;
import ai.elimu.dao.WordLearningEventDao;
import ai.elimu.model.v2.enums.analytics.research.ResearchExperiment;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
Expand Down Expand Up @@ -40,6 +41,7 @@ public String handleRequest(Model model) {
log.info("handleRequest");

model.addAttribute("studentCount", studentDao.readCount());
model.addAttribute("researchExperimentCount", ResearchExperiment.values().length);

model.addAttribute("letterSoundAssessmentEventCount", letterSoundAssessmentEventDao.readCount());
model.addAttribute("letterSoundLearningEventCount", letterSoundLearningEventDao.readCount());
Expand Down
Loading