https://github.com/dogaanismail/read-together
Read Together: A platform for People who Stutter(PWS) to record and share reading practices, privately or with a supportive community.
https://github.com/dogaanismail/read-together
fullstack java liquibase monolith postgresql react reading-aloud self-improvement spring-boot stammering stuttering typescript websocket
Last synced: 3 months ago
JSON representation
Read Together: A platform for People who Stutter(PWS) to record and share reading practices, privately or with a supportive community.
- Host: GitHub
- URL: https://github.com/dogaanismail/read-together
- Owner: dogaanismail
- License: mit
- Created: 2025-08-20T21:54:18.000Z (10 months ago)
- Default Branch: master
- Last Pushed: 2026-04-02T13:44:07.000Z (3 months ago)
- Last Synced: 2026-04-03T00:56:07.361Z (3 months ago)
- Topics: fullstack, java, liquibase, monolith, postgresql, react, reading-aloud, self-improvement, spring-boot, stammering, stuttering, typescript, websocket
- Language: Java
- Homepage:
- Size: 1.18 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
# Read Together — Stutter Support Circle
[](https://github.com/sponsors/dogaanismail)
[](LICENSE)
The journey to confident speech is often a personal one, but it doesn't have to be a lonely one. Stuttering can be an isolating experience, and finding a safe, non-judgmental space to practice and track progress is a significant challenge for many.
Read Together is a web platform dedicated to empowering People Who Stutter (PWS) by providing modern tools and a supportive community for speech practice. Our mission is to transform the solitary act of practice into a shared, encouraging, and empowering experience.
## Core Features
This platform helps users build confidence by focusing on three key areas:
- 📈 Practice & Track Progress: Users can record video or audio sessions of themselves reading aloud or speaking freely. These sessions are saved chronologically, creating a personal and visual log that makes it easy to see and appreciate progress over time.
- 🔒 Share Securely & Confidently: Every user has full control over their privacy. Sessions can be kept completely private for personal review or shared with the community to receive encouragement, exchange feedback, and celebrate milestones.
- 🤝 Build a Supportive Network: The platform is more than a tool; it's a community. Through features like comments, likes, and live group practice rooms, users can connect with peers from around the world who understand the journey, fostering a global network of support.
Additional highlights:
- Live reading rooms (audio/video) with real-time chat and emoji reactions
- Personal book library, goals, achievements, and progress graphs
- Large file uploads (audio/video) up to 500MB with local or S3 storage
## Monorepo at a glance
- read-together-backend/ — Spring Boot app (port 5006)
- read-together-client/ — React + Vite app (dev server port 8080)
- read-together-db-migration-changelog/ — Liquibase changelog module
- docker/ — Local PostgreSQL via Docker Compose
## Tech stack
- Backend: Spring Boot 3 (Java 21), JPA, Liquibase, WebSocket, OpenAPI, Feign
- Database: PostgreSQL (dev via Docker), optional AWS S3 for media
- Frontend: React 18 + TypeScript, Vite, Tailwind CSS, shadcn-ui, Radix
- State/data: React Query; charts: Recharts; mobile with Capacitor
## Ports and configuration (from source)
- Frontend dev: http://localhost:8080 (vite.config.ts)
- Backend API: http://localhost:5006 (application.properties)
- API base path: /api/v1
- Database: jdbc:postgresql://localhost:5433/read-together-app-db (application.properties)
- Docker Compose DB: Postgres exposed on 5433 (docker/docker-compose.yaml)
- File uploads: up to 500MB
Note: If you see older docs mentioning port 5434 for PostgreSQL, the current configuration uses 5433 by default.
## Quick start (local development)
Prerequisites:
- Java 21 (set JAVA_HOME)
- Node.js 18+ and npm
- Docker (optional but recommended for local PostgreSQL)
1) Database via Docker
```bash
cd docker
docker compose up -d
```
This starts PostgreSQL on localhost:5433 with database read-together-app-db and user/password default/default.
2) Backend — build, test, run
```bash
# set Java 21 (example path; adjust for your OS)
export JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64
export PATH="$JAVA_HOME/bin:$PATH"
# from repo root
./gradlew :read-together-backend:build --no-daemon
./gradlew :read-together-backend:test --no-daemon
./gradlew :read-together-backend:bootRun --no-daemon
```
Optional environment variables (defaults in application.properties):
- DB_SERVICE_URL (default jdbc:postgresql://localhost:5433/read-together-app-db)
- DB_SERVICE_USERNAME (default default)
- DB_SERVICE_PASSWORD (default default)
- STORAGE_PROVIDER (local | s3) — default local
- LOCAL_STORAGE_PATH (default /tmp/read-together/uploads)
- AWS_S3_BUCKET, AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_S3_ENDPOINT (if using S3)
3) Frontend — install and run
```bash
cd read-together-client
npm install
npm run dev
```
Open http://localhost:8080 to view the app.
4) Build both
```bash
./gradlew buildAll
```
## Contributing
We welcome contributions that improve accessibility, performance, and the overall experience for people who stutter. Please see CONTRIBUTING.md to get started.
## Sponsorship
If this project resonates with you, please consider sponsoring to support accessible, community-driven tools for speech practice.
- GitHub Sponsors: https://github.com/sponsors/dogaanismail
Your support helps keep Read Together sustainable and growing.
## License
This project is licensed under the MIT License. See LICENSE for details.