{"id":26714846,"url":"https://github.com/akshayjadhav4/thread","last_synced_at":"2026-04-28T14:34:18.989Z","repository":{"id":270941106,"uuid":"899927837","full_name":"akshayjadhav4/thread","owner":"akshayjadhav4","description":"Spring Boot REST API's for thread social media application","archived":false,"fork":false,"pushed_at":"2025-01-04T07:20:48.000Z","size":58,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-03T08:46:54.061Z","etag":null,"topics":["rest-api","spring-boot"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/akshayjadhav4.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-12-07T11:59:22.000Z","updated_at":"2025-01-09T13:51:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"14d3ae71-d9aa-47ce-bca4-c30375fd48ce","html_url":"https://github.com/akshayjadhav4/thread","commit_stats":null,"previous_names":["akshayjadhav4/thread"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/akshayjadhav4/thread","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2Fthread","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2Fthread/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2Fthread/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2Fthread/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/akshayjadhav4","download_url":"https://codeload.github.com/akshayjadhav4/thread/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/akshayjadhav4%2Fthread/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32385180,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-28T14:34:11.604Z","status":"ssl_error","status_checked_at":"2026-04-28T14:32:37.009Z","response_time":56,"last_error":"SSL_read: 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":["rest-api","spring-boot"],"created_at":"2025-03-27T13:51:14.076Z","updated_at":"2026-04-28T14:34:18.973Z","avatar_url":"https://github.com/akshayjadhav4.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Thread Clone API\n\nA Spring Boot-based REST API that implements core functionality similar to Threads (by Meta) application.\n\n## Technologies Used\n\n- Java 17\n- Spring Boot 3.3.5\n- PostgreSQL\n- Redis\n- Apache Kafka\n- JWT Authentication\n- Maven\n\n## Features\n\n- User authentication and authorization\n- Thread creation and management\n- Like/Unlike functionality with Redis caching\n- Follower/Following system\n- Hashtag support\n- Pagination support\n\n## Prerequisites\n\n- Java 17 or higher\n- Maven\n- PostgreSQL\n- Redis Server\n- Kafka Server\n\n## Configuration\n\nThe application can be configured through `application.properties`. Key configurations include:\n\n```properties\n# Database Configuration\nspring.datasource.url=your_database_url\nspring.datasource.username=your_username\nspring.datasource.password=your_password\n\n# JWT Configuration\nauth.token.expirationInMils=\nauth.token.jwtSecret=\n\n# Kafka Configuration\nspring.kafka.bootstrap-servers=\nspring.kafka.consumer.group-id=\n\n# Redis Configuration\nspring.redis.host=\nspring.redis.port=\n\n# API Configuration\napi.prefix=/api/v1\n```\n\n## Project Structure\n\n- `config/` - Configuration classes for Spring Security, Redis, Kafka, etc.\n- `controller/` - REST endpoints\n- `model/` - Entity classes\n- `service/` - Business logic\n- `repository/` - Data access layer\n- `security/` - Security configurations and JWT implementation\n- `dto/` - Data Transfer Objects\n- `mapper/` - Object mapping configurations\n\n## API Endpoints\n\n### Authentication\n- `POST /api/v1/auth/register` - Register new user\n- `POST /api/v1/auth/login` - Login user\n\n### Threads\n- `POST /api/v1/thread/` - Create new thread\n- `GET /api/v1/thread/{threadId}` - Get thread by ID\n- `GET /api/v1/thread/all` - Get all threads (paginated)\n- `GET /api/v1/thread/user/{userId}` - Get user's threads\n- `GET /api/v1/thread/hashtag/{hashtag}` - Get threads by hashtag\n- `PUT /api/v1/thread/{threadId}` - Update thread\n- `DELETE /api/v1/thread/{threadId}` - Delete thread\n\n\n## Building and Running\n\n1. Clone the repository\n2. Configure application.properties with your database credentials\n3. Start Redis server\n4. Start Kafka server\n5. Run the application:\n\n```bash:Readme.md\n./mvnw spring-boot:run\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayjadhav4%2Fthread","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fakshayjadhav4%2Fthread","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fakshayjadhav4%2Fthread/lists"}