{"id":26965770,"url":"https://github.com/jamesql/looped","last_synced_at":"2026-02-14T20:03:10.877Z","repository":{"id":273792092,"uuid":"920845235","full_name":"jamesql/Looped","owner":"jamesql","description":"Connecting professionals and companies for networking, collaboration, and career growth.","archived":false,"fork":false,"pushed_at":"2025-04-02T20:57:43.000Z","size":991,"stargazers_count":2,"open_issues_count":37,"forks_count":0,"subscribers_count":1,"default_branch":"base","last_synced_at":"2025-04-02T21:36:43.901Z","etag":null,"topics":["api","mysql","nodejs","react","redis","scalability","typescript"],"latest_commit_sha":null,"homepage":"https://looped.it.com","language":"TypeScript","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/jamesql.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2025-01-22T21:42:05.000Z","updated_at":"2025-04-02T20:57:46.000Z","dependencies_parsed_at":"2025-03-12T01:24:22.798Z","dependency_job_id":"47e5e30c-5906-4e2d-b544-8ca60c44b5ad","html_url":"https://github.com/jamesql/Looped","commit_stats":null,"previous_names":["jamesql/looped"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jamesql/Looped","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesql%2FLooped","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesql%2FLooped/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesql%2FLooped/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesql%2FLooped/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamesql","download_url":"https://codeload.github.com/jamesql/Looped/tar.gz/refs/heads/base","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamesql%2FLooped/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29454707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-14T15:52:44.973Z","status":"ssl_error","status_checked_at":"2026-02-14T15:52:11.208Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["api","mysql","nodejs","react","redis","scalability","typescript"],"created_at":"2025-04-03T07:33:06.976Z","updated_at":"2026-02-14T20:03:10.863Z","avatar_url":"https://github.com/jamesql.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./Assets/logo_main.jpg\" alt=\"Looped Logo\" width=\"200\"\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e\n    Looped\n\u003c/h1\u003e\n\n## Description\n\nLooped is a dynamic professional networking platform designed to connect individuals and companies in an interactive and structured environment. Users can join specialized servers, engage in discussions through dedicated channels, and showcase their expertise. The platform supports profile creation, resume uploads, and real-time communication via text, voice, and video. Additionally, users can explore job opportunities, build their portfolios, and foster professional relationships.\n\n## Purpose\n\nThe mission of Looped is to provide a secure and engaging space for professional networking, collaboration, and career advancement. The platform incorporates robust security features such as permission-based access control, content moderation, and two-factor authentication to ensure a safe and productive user experience. Looped empowers professionals to expand their network, share insights, and explore new opportunities in an innovative and intuitive way.\n\n---\n\n## Features\n\n- **User Authentication**: Secure login with OAuth and two-factor authentication (2FA)\n- **Profile \u0026 Resume Management**: Users can create profiles, upload resumes, and showcase portfolios\n- **Real-Time Communication**: Supports text, voice, and video chat within channels and direct messages\n- **Server \u0026 Channel System**: Users can join or create industry-specific servers with structured communication\n- **Job Board Integration**: Allows users to apply for jobs and companies to post job listings\n- **Scalability \u0026 Performance**: Optimized with Redis caching, load balancing, and cloud hosting\n\n---\n\n## Project Structure\n\n| Component            |                               Description                                |\n| :------------------- | :----------------------------------------------------------------------: |\n| [API](API)           | Backend API handling authentication, data management, and business logic |\n| [Database](Database) |              Database setup and configuration instructions               |\n| [React](React)       |            Frontend application built with React and Express             |\n| [Redis](Redis)       |              Caching layer setup for optimized performance               |\n| [Socket](Socket)     |          Real-time WebSocket server for seamless communication           |\n| [Util](Util)         |         Utility wrapper classes to reuse throughout the project          |\n| [Types](Types)       |                 Types to be used throughout the project                  |\n| [Assets](Assets)     |     UI/UX design assets, branding materials, and other static files      |\n\n---\n\n## Installation\n\n### Prerequisites\n\nEnsure you have the following installed on your system:\n\n- Node.js \u0026 npm\n- Docker (optional, for containerized deployment)\n- Redis (for caching)\n- PostgreSQL or MongoDB (for database)\n\n### Steps to Run Locally\n\n1. **Clone the Repository**\n   ```bash\n   git clone https://github.com/jamesql/Looped.git\n   cd Looped\n   ```\n2. **Install Dependencies**\n   ```bash\n   npm install --needs to be done in all directories\n   ```\n3. **Set Up Environment Variables**  \n   Create a `.env` file and configure the required variables:\n   ```plaintext\n   # JWT Secrets\n   ACCESS_TOKEN_SECRET=your_jwt_secret_key\n   REFRESH_TOKEN_SECRET=your_jwt_secret_key\n\n   # Prisma PostgreSQL Database URL\n   DATABASE_URL=postgresql://username:password@localhost:5432/database_name?schema=public\n   \n   # Redis URL\n   REDIS_URL=redis://localhost:6379\n   \n   # bCrypt Salt Rounds\n   BCRYPT_SALT_ROUNDS=10\n   ```\n4. **Start Redis Server**\n   ```redis-server```\n5. **Install Database**\n   ```\n   You'll need to copy your .env to ./API to use prisma migrate\n   cd ./API\n   npx prisma migrate dev\n   ```\n5. **Start the Application**\n   ```bash\n   All but React will be started from root directory /Looped\n   API - ts-node ./API\n   Socket - ts-node ./Socket\n   React - npx run dev\n   ```\n\n---\n\n## Main Workflow\n\nLooped follows a structured workflow to ensure efficient communication and collaboration among users:\n\n1. **User Authentication \u0026 Profile Setup**\n\n   - Secure account creation and login (OAuth, 2FA)\n   - Profile customization with resume and portfolio uploads\n\n2. **Server \u0026 Channel Interaction**\n\n   - Join or create industry-specific servers\n   - Participate in discussions through structured text, voice, and video channels\n\n3. **Networking \u0026 Messaging**\n\n   - Direct messaging with connections\n   - Group conversations and professional discussions\n\n4. **Job Applications \u0026 Portfolio Showcase**\n   - Explore and apply for job opportunities\n   - Showcase projects and past work\n\n---\n\n## Scalability \u0026 Performance\n\nLooped is built with scalability in mind, ensuring optimal performance and reliability as the user base grows:\n\n- **Microservices Architecture**: Modular services to allow independent scaling\n- **Cloud Hosting \u0026 Load Balancing**: Deployments on scalable cloud infrastructure\n- **Database Optimization**: Efficient indexing and caching strategies using Redis\n- **Real-time Communication**: WebSocket-based messaging for seamless interaction\n\n---\n\n## Contribution Guidelines\n\nWe welcome contributions from the community! To contribute:\n\n1. Fork the repository\n2. Create a new branch:\n   ```bash\n   git checkout -b feature-branch\n   ```\n3. Make your changes and commit:\n   ```bash\n   git commit -m \"Description of changes\"\n   ```\n4. Push to your fork and submit a pull request\n\n---\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n\n---\n\n## Documentation\n\nFor detailed setup instructions, API references, and developer guides, please visit the [official documentation](https://thejamesash1.gitbook.io/looped).\n\n---\n\n## Contact\n\nFor inquiries or support, reach out to us at:\n📧 Email: [help@looped.it.com]  \n🌐 Website: [looped.it.com](https://looped.it.com)\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesql%2Flooped","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamesql%2Flooped","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamesql%2Flooped/lists"}