{"id":48571071,"url":"https://github.com/dogaanismail/read-together","last_synced_at":"2026-04-08T14:33:17.863Z","repository":{"id":348694776,"uuid":"1041693525","full_name":"dogaanismail/read-together","owner":"dogaanismail","description":"Read Together: A platform for People who Stutter(PWS) to record and share reading practices, privately or with a supportive community.","archived":false,"fork":false,"pushed_at":"2026-04-02T13:44:07.000Z","size":1241,"stargazers_count":0,"open_issues_count":5,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-03T00:56:07.361Z","etag":null,"topics":["fullstack","java","liquibase","monolith","postgresql","react","reading-aloud","self-improvement","spring-boot","stammering","stuttering","typescript","websocket"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dogaanismail.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["dogaanismail"]}},"created_at":"2025-08-20T21:54:18.000Z","updated_at":"2026-04-02T10:38:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dogaanismail/read-together","commit_stats":null,"previous_names":["dogaanismail/read-together"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/dogaanismail/read-together","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogaanismail%2Fread-together","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogaanismail%2Fread-together/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogaanismail%2Fread-together/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogaanismail%2Fread-together/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dogaanismail","download_url":"https://codeload.github.com/dogaanismail/read-together/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dogaanismail%2Fread-together/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31559882,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fullstack","java","liquibase","monolith","postgresql","react","reading-aloud","self-improvement","spring-boot","stammering","stuttering","typescript","websocket"],"created_at":"2026-04-08T14:33:16.816Z","updated_at":"2026-04-08T14:33:17.847Z","avatar_url":"https://github.com/dogaanismail.png","language":"Java","funding_links":["https://github.com/sponsors/dogaanismail"],"categories":[],"sub_categories":[],"readme":"# Read Together — Stutter Support Circle\n\n[![Sponsor](https://img.shields.io/badge/Sponsor-❤-ea4aaa)](https://github.com/sponsors/dogaanismail)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\nThe 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.\n\nRead 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.\n\n\n## Core Features\nThis platform helps users build confidence by focusing on three key areas:\n\n- 📈 Practice \u0026 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.\n- 🔒 Share Securely \u0026 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.\n- 🤝 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.\n\nAdditional highlights:\n- Live reading rooms (audio/video) with real-time chat and emoji reactions\n- Personal book library, goals, achievements, and progress graphs\n- Large file uploads (audio/video) up to 500MB with local or S3 storage\n\n## Monorepo at a glance\n- read-together-backend/ — Spring Boot app (port 5006)\n- read-together-client/ — React + Vite app (dev server port 8080)\n- read-together-db-migration-changelog/ — Liquibase changelog module\n- docker/ — Local PostgreSQL via Docker Compose\n\n\n## Tech stack\n- Backend: Spring Boot 3 (Java 21), JPA, Liquibase, WebSocket, OpenAPI, Feign\n- Database: PostgreSQL (dev via Docker), optional AWS S3 for media\n- Frontend: React 18 + TypeScript, Vite, Tailwind CSS, shadcn-ui, Radix\n- State/data: React Query; charts: Recharts; mobile with Capacitor\n\n\n## Ports and configuration (from source)\n- Frontend dev: http://localhost:8080 (vite.config.ts)\n- Backend API: http://localhost:5006 (application.properties)\n- API base path: /api/v1\n- Database: jdbc:postgresql://localhost:5433/read-together-app-db (application.properties)\n- Docker Compose DB: Postgres exposed on 5433 (docker/docker-compose.yaml)\n- File uploads: up to 500MB\n\nNote: If you see older docs mentioning port 5434 for PostgreSQL, the current configuration uses 5433 by default.\n\n\n## Quick start (local development)\n\nPrerequisites:\n- Java 21 (set JAVA_HOME)\n- Node.js 18+ and npm\n- Docker (optional but recommended for local PostgreSQL)\n\n1) Database via Docker\n\n```bash\ncd docker\ndocker compose up -d\n```\n\nThis starts PostgreSQL on localhost:5433 with database read-together-app-db and user/password default/default.\n\n2) Backend — build, test, run\n\n```bash\n# set Java 21 (example path; adjust for your OS)\nexport JAVA_HOME=/usr/lib/jvm/temurin-21-jdk-amd64\nexport PATH=\"$JAVA_HOME/bin:$PATH\"\n\n# from repo root\n./gradlew :read-together-backend:build --no-daemon\n./gradlew :read-together-backend:test --no-daemon\n./gradlew :read-together-backend:bootRun --no-daemon\n```\n\nOptional environment variables (defaults in application.properties):\n- DB_SERVICE_URL (default jdbc:postgresql://localhost:5433/read-together-app-db)\n- DB_SERVICE_USERNAME (default default)\n- DB_SERVICE_PASSWORD (default default)\n- STORAGE_PROVIDER (local | s3) — default local\n- LOCAL_STORAGE_PATH (default /tmp/read-together/uploads)\n- AWS_S3_BUCKET, AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_S3_ENDPOINT (if using S3)\n\n3) Frontend — install and run\n\n```bash\ncd read-together-client\nnpm install\nnpm run dev\n```\n\nOpen http://localhost:8080 to view the app.\n\n4) Build both\n\n```bash\n./gradlew buildAll\n```\n\n\n## Contributing\nWe welcome contributions that improve accessibility, performance, and the overall experience for people who stutter. Please see CONTRIBUTING.md to get started.\n\n\n## Sponsorship\nIf this project resonates with you, please consider sponsoring to support accessible, community-driven tools for speech practice.\n\n- GitHub Sponsors: https://github.com/sponsors/dogaanismail\n\nYour support helps keep Read Together sustainable and growing.\n\n\n## License\nThis project is licensed under the MIT License. See LICENSE for details.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogaanismail%2Fread-together","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdogaanismail%2Fread-together","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdogaanismail%2Fread-together/lists"}