Backend Server
Tilli is an open-source web-based application focused on game-based social emotional learning experiences for kids. The backend is built with Scala, uses Truffle for compilation, and Redis for database management.
Table of Contents
Prerequisites
Before you begin, ensure you have the following installed:
- Redis (Version 8.x)
- SBT (Scala Build Tool)
- Java Development Kit (JDK)
Installation
Redis Setup
Install Redis Version 8.x
- For macOS:
brew install redis@8
- For Linux: Follow Redis installation guide
- For macOS:
Stop existing Redis server (if running)
# On Linux
sudo /etc/init.d/redis-server stop
# On macOS
redis-cli shutdownBackup existing data (optional)
cd /var/lib/redis/
cp dump.rdb dump_backup.rdbReplace Redis data
cp /path/to/tilli-backend-server/data/dump.rdb /var/lib/redis/
Start Redis server
# On Linux
sudo /etc/init.d/redis-server start
# On macOS
brew services start redis
Running Locally
Run the server using SBT with the following command structure:
sbt "runMain com.teqbahn.bootstrap.StarterMain local 2553 8093 <ServerIP> <RedisIP>:<RedisPort> <MailId> <MailPassword> <filepath>"
Parameters Explained:
local
: Server running environment2553
: Pekko Port8093
: HTTP Port<ServerIP>
: Your system IP (e.g., 192.0.0.1)<RedisIP>
: Redis IP (default: 127.0.0.1)<RedisPort>
: Redis Port (default: 6379)<MailId>
: Email for notifications<MailPassword>
: Email password<filepath>
: System filepath for storage
Example:
sbt "runMain com.teqbahn.bootstrap.StarterMain local 2553 8093 192.1.0.1 127.0.0.1:6379 your.email@example.com yourpassword /path/to/storage"
Joining the Tilli Community
We are a vibrant community of learning designers, game designers, developers, and educators passionate about creating innovative social emotional learning experiences for kids. Our goal is to develop inclusive, accountable, and accessible technology services for education.
Support
- Documentation: Check our User and Developer Documentation
- Video Tutorial: Watch our setup guide
- Community: Join our Slack Community for support and collaboration