{"id":21270016,"url":"https://github.com/ushiradineth/subapp","last_synced_at":"2025-07-11T05:31:39.523Z","repository":{"id":158747067,"uuid":"604089914","full_name":"ushiradineth/subapp","owner":"ushiradineth","description":"An Subscription Management Platform for Business owners to promote their subscriptions and for Users to access the vast market of subscriptions.","archived":false,"fork":false,"pushed_at":"2024-02-12T17:23:19.000Z","size":2640,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"prod","last_synced_at":"2024-04-18T09:43:31.332Z","etag":null,"topics":["expo","nextauth","nextjs","pnpm","postgresql","prisma","radix-ui","react-hook-form","react-native","shadcn-ui","tailwindcss","tamagui","trpc","turborepo","typescript","vercel","yup","zod"],"latest_commit_sha":null,"homepage":"https://subm.ushira.com","language":"TypeScript","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/ushiradineth.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}},"created_at":"2023-02-20T10:08:12.000Z","updated_at":"2024-03-03T01:38:10.000Z","dependencies_parsed_at":"2023-05-26T23:30:33.514Z","dependency_job_id":"d86d33db-cffb-4d68-b16d-55fc4b13620a","html_url":"https://github.com/ushiradineth/subapp","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ushiradineth%2Fsubapp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ushiradineth%2Fsubapp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ushiradineth%2Fsubapp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ushiradineth%2Fsubapp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ushiradineth","download_url":"https://codeload.github.com/ushiradineth/subapp/tar.gz/refs/heads/prod","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225693740,"owners_count":17509227,"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","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":["expo","nextauth","nextjs","pnpm","postgresql","prisma","radix-ui","react-hook-form","react-native","shadcn-ui","tailwindcss","tamagui","trpc","turborepo","typescript","vercel","yup","zod"],"created_at":"2024-11-21T08:14:10.263Z","updated_at":"2025-07-11T05:31:39.517Z","avatar_url":"https://github.com/ushiradineth.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 💵 SubM: Subscription Management Platform\n\nA Subscription Management Platform for Subscription Sellers to promote and sell their subscriptions and for Users to access the vast market of subscriptions. `NextJS` dashboard for Vendors and `React Native` Mobile App for Subscription Users\n\n## Technologies\n\n- `Next.js`\n- `TypeScript`\n- `NextAuth`\n- `PostgreSQL`\n- `Prisma`\n- `tRPC`\n- `Tailwind CSS`\n- `Expo`\n- `React native`\n- `Zod`\n- `React-hook-form`\n- `Shadcn UI`\n- `Turborepo`\n- `Tamagui`\n- `React Email`\n- `Vercel`\n- `Supabase`\n- `AWS S3`\n\n## Features\n\nHere's what you can do with SubM:\n\n- **Manage Subcriptions**: Users can track and manage their subscriptions using the `React Native` mobile app. Create custom private subscriptions if the subscriptions doesn't exist.\n\n- **Community Features**: Users can interact with the community to discuss about the subscriptions in the market.\n\n- **Personalized Recommendations**: Users get personalized recommendations for subscriptions, backed by algorithms like Content Based Filtering and Collaborative Filtering.\n\n- **Sell Subscriptions**: Vendors can sell subscriptions on SubM, and track analytics using the dashboard.\n\n- **Manage the platform**: Admins can manage all entities of SubM using the `NextJS` dashboard, including users, vendors, products and product requests etc.\n\n## The Process\n\nI started this project as the final year project for my Bachelors Degree, I did my initial research to find a market with a lack of automation of tasks and found the subscription market to be the right pick for this project, as there are no other apps that provides these features together.\n\nNext, I planned out what features I should have for this product, and landed with building a platform that includeds an admin and vendor dashboard, and a mobile app, with features such as cohesive entity management, personalized recommendations and community features.\n\nI then researched about the technologies i should use for this platform, and landed on building an end to end typesafe application using typescript on all three ends, backend, `NextJS` frontend and `React Native` mobile app, collocated with `Turborepo`.\n\nI was able to conclude development within three months while working and studying at for the final year.\n\nI was able to use this project as my internship assignment project, which helped me get permanent from my internship.\n\nAlong the way, while building everything i documented the process as it was necessary for my final year report.\n\nIn the end I was able to use this project to get a job and get an `A` for the final year project :]\n\n## What I Learned\n\nDuring this project, I learned about running a structured and well documented project.\n\n### Turborepo:\n\n- This is my first time building a project with a monorepo like `Turborepo`.\n- It came with a bunch of issues with pnpm but i was able to get through them.\n\n### React Native:\n\n- This is also my first time using `Expo` `React Native`.\n- I was using an early version of `Expo Router` as that was the latest back then, which came with a few quirks, but i was able to get through then.\n\n## How can it be improved?\n\n- Add automated product scraping.\n- Add localization with more currencies.\n- Improve performance on the mobile app.\n- Update Expo router to the latest version, which should fix some of the quirks.\n- Add dark mode for the mobile app.\n- Add light mode for the dashboard.\n\n## Running the Project\n\nTo run the project in your local environment, follow these steps:\n\n1. Clone the repository to your local machine.\n2. Run `pnpm i` in the project directory to install the required dependencies.\n3. Run `pnpm dev` to get all projects running, but you are required to provide the necessary enviorment variables.\n\nRunning the project maybe complex due to the nature of turborepo, contact me for any clarification.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fushiradineth%2Fsubapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fushiradineth%2Fsubapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fushiradineth%2Fsubapp/lists"}