Some resources regarding making changes and contributing to the website, as well as some todos.
Below are some resources that you can review regarding how the socis website works.
- Sub-domain Flowchart: https://app.eraser.io/workspace/1GB8xUB93YVxIcvQwgqp?origin=share
- Prisma: Fireship
- tRPC: Fireship or Jack Herrington
- Next.js: Fireship or the documentation can be found here
First, clone the repository using git clone {repository .git url}
Before you start editing, make sure you're on the dev
branch and that you're on the latest version! Run git pull
to pull all changes before making new ones!
If you're making changes to this repo, copy/paste the following commands when you're making your first
commit:
git checkout -b "your-name/feature"
git add .
git commit -m "New Feature"
git push --set-upstream origin "your-name/feature"
git checkout main
REPLACE your-name/feature
with your name and the feature you're adding!
If it's not your first commit, use
git push
rather thangit push --set-upstream origin your-name/feature
Then head over to the GitHub repo online and create a pull request from the branch you just created.
After the first commit, you don't need to copy/paste the above again, you can make commits as usual.
Tell someone who is in the Admin
team to review the code and merge the pull request. You can manually add a reviewer if you'd like.
Some to-dos. These were last updated May 2024.
-
Convert
auth.socis.ca
to use JWT for sign up link and password reset link (THIS IS VERY IMPORTANT) -
Sign out button in
account.socis.ca
-
Convert
<form>
's toreact-hook-form
andzod
-
Fix UI: Padding, more responsive on mobile, etc.
-
Migrate from Vercel Blob Storage to AWS S3 or another S3 provider (Vercel’s blob storage limits are too low)
-
Clean up the backend — i’m sure if you look around (especially in the account.socis.ca page) you’ll find some problems
-
Better and more uniform input validation (on both the frontend and backend; this is similar to the
zod
andreact-hook-form
implementation). -
Better error handling and error messages.
-
Better status handling (loading screens, errors, etc.)
-
store.socis.ca and stripe implementation
-
hardware checkout system
-
socis.ca/about page needs a better design (most pages do also, get a designer to help maybe)
-
Implement
prisma.$transaction
for deleting users from the database and their profile photos from blob storage.
Basically try to clean up the UI and the code. I'm sure there's a lot of bugs, you just need to play around to find them. If you ever need access to the database (Supabase, PostgreSQL), shoot me a DM on Discord @ realtristan
All the best and have fun coding!