- Template: React Typescript
- Project Type: Social Media
- Inspiration sources: Twitter, Facebook
- Frontend External Dependencies: Bootstrap, FontAwesome, Sweetalert2, React (+ included packages), Vite (+ included packages), Axios
- Backend External Dependencies: Typescript, Hono, pg, Drizzle, argon2, jsonwebtoken, nodemailer
- Developer Note: V2 will be rewritten in Tailwind CSS and for the android version, it might be written in V2 along with React Native usage
- Production Ready: No
- Package Manager: PNPM
- Runtime: Bun.js
- Database: PostgreSQL
- Install database tool for PostgreSQL and its driver. (I use DBeaver as the tool here for offline, but you can use Supabase for online version.)
- Use the
schema.sqlfile or copy the script inside to the database tool - Generate the database URL and copy it to
DATABASE_URLfield in.envNote: If theschema.sqlfile is broken, you can just generate new one with commandpnpm migrate-dband do step 2.
-
Install BunJS
-
Change the
.env.exampleto.envand fill the data -
To get raw database schema, use
drizzle-kit -
Run
cd server -
Run
pnpm install -
Run
pnpm start -
Developer Note: Make sure to use an actual gmail username for email_user and Google App Password for the email_pass
- Open new terminal
- Run
cd client - Run
pnpm install - Run
pnpm run dev
- Login Page Background: @Rawpixel.com in Freepik
- Register Page Background: @Pikisuperstar in Freepik
- Verified Icon: @oelhoem in Freepik
- Default Profile Picture: Freeiconspng in Google
- App Icon (Vite Icon): Vite
- Login
- Register
- Email verification
- Reset Password
- Basic Security Functions (for pages)
- Sidebar
- Home Page
- Upload, Like and Delete posts (images are also supported)
- Comment Post (Add, load, reply, like, like reply, and delete)
- Report Post
- Search Posts (Search User + Post)
- Administrator / Developer Features (Ban User, Unban User)
- Viewing Profile + Functionalities including: Follow, View User Posts, Block User, and Edit (for owners)
- Notifications Page
- Messages Page
- Settings Page