{"id":19811649,"url":"https://github.com/majkeloess/apollo","last_synced_at":"2026-04-12T13:02:52.749Z","repository":{"id":242597095,"uuid":"793132804","full_name":"majkeloess/apollo","owner":"majkeloess","description":"Fullstack social media platform for tracking and sharing your personal development journey, including fitness goals and knowledge acquisition","archived":false,"fork":false,"pushed_at":"2024-06-03T19:18:27.000Z","size":4971,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T18:47:37.468Z","etag":null,"topics":["framer-motion","html-css-javascript","javascript","nextauth","nextjs","nextjs14","prisma","radix-ui","react","reactjs","shadcn-ui","social-media","social-media-app","tailwind-css","typescript","vercel","zod"],"latest_commit_sha":null,"homepage":"https://apollo.majkeloess.dev","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/majkeloess.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":"2024-04-28T14:19:30.000Z","updated_at":"2024-06-03T20:45:05.000Z","dependencies_parsed_at":"2024-06-04T00:22:42.246Z","dependency_job_id":"0084bf12-c733-4ae0-aba3-956d298326bd","html_url":"https://github.com/majkeloess/apollo","commit_stats":null,"previous_names":["majkeloess/apollo"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/majkeloess/apollo","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/majkeloess%2Fapollo","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/majkeloess%2Fapollo/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/majkeloess%2Fapollo/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/majkeloess%2Fapollo/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/majkeloess","download_url":"https://codeload.github.com/majkeloess/apollo/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/majkeloess%2Fapollo/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274609465,"owners_count":25316621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-11T02:00:13.660Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["framer-motion","html-css-javascript","javascript","nextauth","nextjs","nextjs14","prisma","radix-ui","react","reactjs","shadcn-ui","social-media","social-media-app","tailwind-css","typescript","vercel","zod"],"created_at":"2024-11-12T09:27:16.256Z","updated_at":"2026-04-12T13:02:47.715Z","avatar_url":"https://github.com/majkeloess.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Apollo banner](https://github.com/majkeloess/ApolloApp/assets/118011581/4365a805-816c-4250-94b7-8dc637355c0c)](https://apollo.majkeloess.dev)\n\n# 👋 Introduction \n**Apollo** is the largest project I'm currently working on. The idea behind Apollo is simple: it's a platform where you can connect with your friends and view their daily gym or endurance training activities on your feed. \n\nCurrent version: *1.0*\n\nThe development of the project began on *9 April 2024*.\n# ⚙️ Tech stack\n- Next.js\n- React.js\n- TypeScript\n- TailwindCSS\n- Prisma\n- Auth.js\n- Framer motion\n- Chart.js\n- zod\n# 🛠️ Features \n![Apollo_feature](https://github.com/majkeloess/ApolloApp/assets/118011581/9695addd-d25e-431a-88ec-d439fd3480cb)\n\n🔋 **Authentication:** Securely authenticate users through Google OAuth.\n\n🔋 **Authorization**:  Implement role-based access control to manage user permissions.\n\n🔋 **JWT Token Strategy**:  Streamline user access by leveraging JSON Web Tokens (JWT) for authentication and authorization, eliminating the need for traditional account creation.\n\n🔋 **Workout Tracking**:  Enable users to easily add and track workouts, including the number of sets and load for each exercise.\n\n🔋 **Data Collection \u0026 Storage**: The platform securely stores and maintains all data provided by users.\n\n🔋 **Social Features (SSR)**: Enhance user engagement with server-side rendered (SSR) social features like following, liking, commenting on posts, and a personalized feed.\n\n🔋 **Performance Charts**:  Visualize training progress and data through interactive charts and graphs.\n\n🔋 **Additional Content**:  Incorporate relevant music playlists and articles to enhance the user experience.\n\n🔋 **Responsive Design**: Ensure the platform adapts seamlessly to different screen sizes and devices for optimal viewing.\n\n🔋 **Light/Dark Mode**: Provide users with the option to switch between light and dark themes for visual comfort.\n\n\n\nand many more ...\n\n# Installation\nTo run application locally you need to have `git`, `node.js` and `npm` installed locally on your machine.\n\n## Cloning the repo and installing dependencies\n```bash\ngit clone https://github.com/majkeloess/ApolloApp\ncd ApolloApp\nnpm i \n```\n## Setting up environmentt variables\nChange name of the `.env.example` file, into `.env` or `.env.local` .\n```env\nPOSTGRES_URL=\nDATABASE_URL=\nPOSTGRES_PRISMA_URL=\nPOSTGRES_URL_NO_SSL=\nPOSTGRES_URL_NON_POOLING=\nPOSTGRES_USER=\nPOSTGRES_HOST=\nPOSTGRES_PASSWORD=\nPOSTGRES_DATABASE=\n\nAUTH_SECRET=\n\nAUTH_GOOGLE_ID=-\nAUTH_GOOGLE_SECRET=\n```\nYou can get the first segment of environment variables from [Vercel](https://vercel.com). Log in -\u003e Storage -\u003e Create Database -\u003e Postgres (Serverless SQL). On quickstart to your database you will have option to see your `.env.local`, just copy and paste.\n\nSecond segment stands for [Auth.js](https://authjs.dev) secret. To generate it, run the following command in your terminal:\n```bash\nopenssl rand -base64 33\n```\nThen copy and paste the output into your file. \n\nThe final part involves connecting to your [Google console](https://console.cloud.google.com/). You'll need to create a new application that utilizes the Google OAuth API. This process is more involved than the previous steps, so please refer to this [YouTube video](https://www.youtube.com/watch?v=ot9yuKg15iA) for guidance.\n## Connecting to prisma\n```bash\nnpx prisma migrate dev\n```\n## Running the project\n```bash\nnpm run dev\n```\nOpen [http://localhost:3000](http://localhost:3000) in your browser. \n\n\n# 🔥 Future improvements\n⚡ Modals for following, followers\n\n⚡ Infinite scroll (SSR) for Feed\n\n⚡ Pagination (SSR) for ProfileCard\n\n⚡ Edit profile page, including: adding nickname, changing profile photo\n\n⚡ Edit training\n\n⚡ Leaderboards\n\n⚡ Cooking recipes\n\n⚡ Adding photos to training, recipe\n\n⚡ Form validation (checking provided value, eg. link is link etc.)\n\n⚡ Credentials and new providers\n\n⚡ React Native app:) \n\n# License \n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmajkeloess%2Fapollo","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmajkeloess%2Fapollo","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmajkeloess%2Fapollo/lists"}