Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ushiradineth/subapp
An Subscription Management Platform for Business owners to promote their subscriptions and for Users to access the vast market of subscriptions.
https://github.com/ushiradineth/subapp
expo nextauth nextjs pnpm postgresql prisma radix-ui react-hook-form react-native shadcn-ui tailwindcss tamagui trpc turborepo typescript vercel yup zod
Last synced: about 1 month ago
JSON representation
An Subscription Management Platform for Business owners to promote their subscriptions and for Users to access the vast market of subscriptions.
- Host: GitHub
- URL: https://github.com/ushiradineth/subapp
- Owner: ushiradineth
- Created: 2023-02-20T10:08:12.000Z (almost 2 years ago)
- Default Branch: prod
- Last Pushed: 2024-02-12T17:23:19.000Z (11 months ago)
- Last Synced: 2024-04-18T09:43:31.332Z (8 months ago)
- Topics: expo, nextauth, nextjs, pnpm, postgresql, prisma, radix-ui, react-hook-form, react-native, shadcn-ui, tailwindcss, tamagui, trpc, turborepo, typescript, vercel, yup, zod
- Language: TypeScript
- Homepage: https://subm.ushira.com
- Size: 2.52 MB
- Stars: 8
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 💵 SubM: Subscription Management Platform
A 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
## 📦 Technologies
- `Next.js`
- `TypeScript`
- `NextAuth`
- `PostgreSQL`
- `Prisma`
- `tRPC`
- `Tailwind CSS`
- `Expo`
- `React native`
- `Zod`
- `React-hook-form`
- `Shadcn UI`
- `Turborepo`
- `Tamagui`
- `React Email`
- `Vercel`
- `Supabase`
- `AWS S3`## 📚 Features
Here's what you can do with SubM:
- **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.
- **Community Features**: Users can interact with the community to discuss about the subscriptions in the market.
- **Personalized Recommendations**: Users get personalized recommendations for subscriptions, backed by algorithms like Content Based Filtering and Collaborative Filtering.
- **Sell Subscriptions**: Vendors can sell subscriptions on SubM, and track analytics using the dashboard.
- **Manage the platform**: Admins can manage all entities of SubM using the `NextJS` dashboard, including users, vendors, products and product requests etc.
## 👩🏽🍳 The Process
I 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.
Next, 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.
I 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`.
I was able to conclude development within three months while working and studying at for the final year.
I was able to use this project as my internship assignment project, which helped me get permanent from my internship.
Along the way, while building everything i documented the process as it was necessary for my final year report.
In the end I was able to use this project to get a job and get an `A` for the final year project :]
## 📚 What I Learned
During this project, I learned about running a structured and well documented project.
### Turborepo:
- This is my first time building a project with a monorepo like `Turborepo`.
- It came with a bunch of issues with pnpm but i was able to get through them.### React Native:
- This is also my first time using `Expo` `React Native`.
- 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.## 💭 How can it be improved?
- Add automated product scraping.
- Add localization with more currencies.
- Improve performance on the mobile app.
- Update Expo router to the latest version, which should fix some of the quirks.
- Add dark mode for the mobile app.
- Add light mode for the dashboard.## 🚦 Running the Project
To run the project in your local environment, follow these steps:
1. Clone the repository to your local machine.
2. Run `pnpm i` in the project directory to install the required dependencies.
3. Run `pnpm dev` to get all projects running, but you are required to provide the necessary enviorment variables.Running the project maybe complex due to the nature of turborepo, contact me for any clarification.