Skip to content

project-electro-motive-diesel-sd70-ace-t4 created by GitHub Classroom

Notifications You must be signed in to change notification settings

upenn-nets-2120/Pennstagram-Project

Repository files navigation

Here's a censored version of the content converted to past tense:

Pennstagram Project

Overview

This project involved building a social media site with support for images. The project was done in teams and built upon components developed over the semester.

Project Technology Stack

The project had several elements, including:

  • Backend services in Node.js and/or Java, hosted on cloud infrastructure
  • Database (accounts, social network, etc.) hosted in cloud databases
  • Image search based on embeddings similarity
  • Large objects stored in cloud storage
  • Natural language search using a large language model
  • Social news streaming via message broker
  • Ranking of posts and individuals via distributed computing framework
  • Proper handling of security and sessions
  • Frontend in React and Javascript
  • Code in version control

Features

User Signup and User Accounts Backend

New users could sign up for an account by entering basic information. Passwords were salted and encrypted following best practices. Users could upload a profile photo and include hashtags of interests.

User Login Page

Users could log in with their user ID and password.

User Page / Main Content Feed

When logged in, users saw an Instagram-style feed with status updates, new friendships, and profile updates from friends. Users could make posts containing optional images and text, including hashtags.

Feed

The feed included posts from friends, posts referencing the user's selected hashtags of interests, posts from users with high SocialRank, and posts from a provided social media stream.

Secondary Screens

Additional features included:

  1. Profile page
  2. Add/remove friends
  3. Chat mode
  4. Search functionality

Natural Language Search

Users could search for people and posts using retrieval-augmented generation over indexed content.

Security and Scalability

The design ensured security and scalability.

Recommendations

The system recomputed a list of recommendations for "who to follow" on a daily basis.

Project Report

At the end of the project, teams included a short final report discussing the system overview, technical description, design decisions, changes made, lessons learned, and screenshots of the system in action.

The project aimed to provide a comprehensive learning experience in building a scalable, feature-rich social media platform using modern web technologies and cloud services.