Skip to content
/ peng Public

Peng is a no nonsense dating platform developed using ReactJS, Express.JS and Sqlite3

Notifications You must be signed in to change notification settings

rayray39/peng

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

194 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Peng: A no nonsense dating platform for the serious

Peng was designed for people who are serious about making meaningful connections. With a streamlined user profile setup journey—including bio creation, hobby selection, and image uploads—Peng ensures users put their best foot forward. The platform features a familiar swipe mechanism to discover potential matches, and once a match is made, users can instantly chat to take things further. Built for simplicity and authenticity, Peng prioritizes quality over gimmicks, making dating simple and intentional.

The main features are:

Features Description
Login/Create account When a user logs in or when a new account is created, a JWT (JSON Web Token) is issued to authenticate the user and provide access to subsequent pages. This JWT is stored in the user's local storage for retrieval.
Fill in bio Users are to fill in a bio (i.e., a short description) that describes themselves.
Select hobbies Users are to select 3 hobbies, each hobby chip was designed based off Material UI's Chip component.
Upload images Users are to select 3 images from files and images are subsequently uploaded to Cloudinary for cloud storage.
Messaging Users can message liked users and the messages are dynamically updated and sent to the receipient immediately.

Contents

Usage

Visit the website here
**not deployed just yet, still finishing some tweaks...

Learning Points

This section covers the technical lessons learnt while building Peng.

Frontend

  • state management and dynamically updating UI using controlled components and React's hooks (eg. useState, useEffect) for a smooth user experience.
  • smooth navigation between pages using React Router and managing dynamic routes with parameters.
  • created a simple authentication method to prevent unauthenticated access into pages.
  • understanding when to pass data via props vs. using global state/context helped maintain a clean and maintainable component structure.
  • implemented controlled inputs for login, signup, and chat messages with client-side validations.
  • proper handling of API errors and displaying user-friendly messages
  • levraged Material UI's simplified and consistently styled components for UI/UX, adding custom styling and behaviour for a smoother experience.
  • designed features include: login/create account, first-time user profile setup journey, messaging feature, swipe and match feature.

Backend

  • database design and queries using Sqlite3, management of multiple tables and relations.
  • store user images in cloud storage (Cloudinary) via API.
  • implemented token-based authentication using JWT ensured secure messaging.
  • protecting API routes with middleware prevented unauthorized access.
  • designing RESTful API endpoints for data transfer to frontend.
  • designing RESTful API endpoints for debugging and testing of database.

Others

Guides

Dev guide

Click here for the dev guide
**not written yet, will be uploaded soon!

React + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

About

Peng is a no nonsense dating platform developed using ReactJS, Express.JS and Sqlite3

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages