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
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
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.
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 :]
During this project, I learned about running a structured and well documented project.
- 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.
- 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.
- 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.
To run the project in your local environment, follow these steps:
- Clone the repository to your local machine.
- Run
pnpm i
in the project directory to install the required dependencies. - 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.