Skip to content

S1Y333/partyEasy-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Party Easy App (Backend)

App Overview

The app is designed to organize party easily but also include almost everything for holding a party, live app: https://partyeasy.netlify.app/ (The data is available only for Toronto, ON, Canada for now. Also, please bear with the downtime as the policy for free web service from render.com)

Problem

City life is around "BUSY". We're all busy with work, kids and everyday work & life. Sometimes we really want to organize a party to reunion with old friends or team members, even a surprise party for kids or your family, but planning a party is time consuming. Here, our app is to the rescue.

User Profile

Anyone who wants to organize a party, small or big.

Backend Description

Backend handle all the database interaction using TypeORM, real-time data getting using Puppeteer

Frontend

https://github.com/S1Y333/partyEasy-frontend

Implementation

Tech Stack

--NodeJS --TypeScript --Firebase Admin --Socket.io --Multer --TypeORM --Puppeteer --Unsplash API

Endpoints

package: Screen Shot 2024-05-07 at 9 59 39 AM

user: Screen Shot 2024-05-07 at 10 00 01 AM

venue data: Screen Shot 2024-05-07 at 10 00 23 AM

Usage

npm i set up .env environment variables config firebase admin file npm start to run the backend

Seed data

npm run seed

Synchronize database table structure

npm run schema:sync

Database structure

Screen Shot 2024-05-07 at 9 57 49 AM

Features

Authentication

User Login User Signup -> Verfication Email ->Signup Complete Page (user can upload avatar and customize their username)

Login success -> User Profile Page -> Create party package or log out

Algorithm brief: Frontend user authentication is handled by google firebase authentication, when logging user's authentication token will be sent to backend and will be verified by firebase admin (middleware). If successful, user can access their personal page, like profile page.


Get party recommendation

Cover Page (Click on PLAN NOW) -> Fill in Questionnaire (address field is integrated with Google autoComplete function) -> Generate recommended package with unsplash API provided cover photo.

Algorithm brief: compare the location user entered with the venue locations in db to find the venue which is located within radius (default 500km) and price is around 60% of the total budget(user entered).

Then pick the drink under user's choice (non-alcohol or alcohol) also the price of the drink is caculated based on requested number of guests and the budget.

Then pick the food under user's choice category also the food price, the number of guests and the budget Screen Shot 2024-05-08 at 11 44 42 AM


Real-time Chat

On the packagelist page, A real-time chatting room is provided to ask instant questions to peers


Web Scrapping data

Integrated with Puppeteer to get real venue data and stored in database (from https://www.peerspace.com/pages/listings/627c4df5c986d7000e949580?sort_order=1), including location, numbers of people can accommodate, price/ per hour

--

TypeORM to manage db

Implemented TypeORM Active Record pattern to create entities that maps to the database tables, which is easy to create and maintain database.

The changes made to database structure will be happening in code instead of database. After changing the structure, run scripts ( npm run schema:sync), so the database will be updated.

--

4. In progress features

  • user like, save, delete packages
  • private messageing: using Redis and other tools
  • backend auto renew webscrapping data every 7 days
  • server pagination for package list
  • Role Based Access Control: admin can add website to get data from

5. More info

Intro Slides

Screen Shot 2024-05-24 at 11 15 48 AM Screen Shot 2024-05-24 at 11 15 59 AM Screen Shot 2024-05-24 at 11 18 13 AM Screen Shot 2024-05-24 at 11 16 21 AM Screen Shot 2024-05-24 at 11 16 33 AM Screen Shot 2024-05-24 at 11 16 41 AM Screen Shot 2024-05-24 at 11 16 50 AM Screen Shot 2024-05-24 at 11 17 00 AM Screen Shot 2024-05-24 at 11 17 10 AM Screen Shot 2024-05-24 at 11 17 21 AM

Screenshots

Screen Shot 2024-05-07 at 1 18 23 PM user profile page with user created package user profile page first time login social share modal signup page reset password questionaire page package list page package detail page login cover page complete sign up

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published