Skip to content

TalentShare is a social media application with a focus on user-generated content that revolves around art, photography, music, and dance. It provides a platform for creatives to showcase their work, gain exposure, and chat with their fans.

Notifications You must be signed in to change notification settings

asiddiki98/TalentShare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

logo

Background and Overview

TalentShare is a social media application with a focus on user-generated content that revolves around art, photography, music, and dance. It provides a platform for creatives to showcase their work, gain exposure, and chat with their fans.

Live Demo

Functionality and MVP

  • Users can create accounts to browse talent feeds; Options include art, photography, music, and dance (All categories are combined by default)

Category Selection Demo

  • Artists have their own portfolio pages and can create posts that belong to a specific category
    • Posts can be any file type (audio/video/image) and will be rendered accordingly

Portfolio Page

Post Demo

  • Users can like and comment on posts

Like and Comment Demo

  • Users can live chat with artists

Live Chat Demo

Technologies and Challenges

Backend

  • MongoDB
  • Express.js
  • Node.js
  • Mongoose

Frontend

  • React
  • Redux

Realtime Communication

  • WebSocket

A challenge our team encountered was quickly and efficiently filtering through posts to generate category specific feeds. We decided to make a single axios request to our backend to fetch every post in the database whenever a user logs in. To show all the posts that belong to a category, we filter the posts shown by using the posts that already exist in our state and taking advantage of React Router's location and pathname attributes.

render() {
  return (
    <div className="main-index-component">
      <PostIndex posts={this.props.posts.filter(post => {
        switch(this.props.location.pathname){
          case "/browse":
            return true;
          case "/browse/Art":
            return post.category === "Art";
          case "/browse/Photography":
            return post.category === "Photography";
          case "/browse/Music":
            return post.category === "Music";
          case "/browse/Dance":
            return post.category === "Dance";
        }
      })} />
    </div>
  );
}

Another challenge we encountered was implementing the ability for users to seamlessly edit posts and the basic information on their portfolio page. The snippet below specifically demonstrates editing portfolio pages. To allow users to update their profile picture, we first send a request to upload an image and fetch it. We then send the fetched data alongside the request to update the specific user. The process is similar for editing posts.

handleSubmit(e) {
    e.preventDefault();
    const formData = new FormData();
    formData.append('file', this.state.file);
    formData.append('caption', "profile-pic");
    if (this.state.file) {
        this.props.sendFile(formData).then(() => this.props.updateUser({
            username: this.state.username,
            firstname: this.state.firstname,
            lastname: this.state.lastname,
            propic: this.props.content.filename,
            bio: this.state.bio,
            _id: this.state._id
        })).then(this.props.closeModal);
    } else {
        this.props.updateUser({
            username: this.state.username,
            firstname: this.state.firstname,
            lastname: this.state.lastname,
            propic: this.state.propic,
            bio: this.state.bio,
            _id: this.state._id
        }).then(this.props.closeModal);
    }
}

Team

  • Team Lead: Azim Siddiki
  • Backend Lead: Tasnim Saiduzzaman
  • Frontend Lead: Paul Ramirez
  • Flex: Stephen Yang

About

TalentShare is a social media application with a focus on user-generated content that revolves around art, photography, music, and dance. It provides a platform for creatives to showcase their work, gain exposure, and chat with their fans.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •