Code Monkey home page Code Monkey logo

fellowboard's People

Contributors

amy-lei avatar rch-liu avatar roeeyn avatar yahengsu avatar

Watchers

 avatar  avatar

fellowboard's Issues

Parse Youtube links & Github issues/PRs

For good user experience, it'd be best if the user can simply add a link for the post instead of manually filling out the title, description, timestamp, etc. It's possible by using regex to parse the link for the video id and fetching from youtube data api.

Help on the regex

Handle errors in frontend

  • Give feedback when error returned from trying to post an invalid URL
    • Instead, all we get right now is the spinny wheel of death
  • Don't allow for empty tags

Set up database

  • User model
    • Fields: id, login, name, avatarUrl, bio
  • Post model
    • Fields: _id, tags, title, content, isPinned, isPublic,

Finish User login process

To tie everything together, we need to:

  • Add user to DB if it's their first time logging in (by checking if their github username already exists)
    • If exists, just fetch the user
    • Otherwise, create a user following the schema
  • Fetch posts that where isPublic || creator === githubUsername

This should probably go into the login endpoint/happen when github successfully authenticates the user.

Deploy website

Heroku maybe? I remember Will also mention domain something credit 👀

Add ability to delete posts

Users can only delete their own posts or server created posts (since we’re advertising this as a community thing lol)

Setup API endpoints

Will need to discuss the format in which we send the data as well as which endpoints are needed. This is what I have in mind for now:

  • Add posts
    • Will need type, isPublic, creator, content
  • Update posts
    • New tags
    • Edited content (will we allow for this?)
  • Update user — probably split into separate endpoints
    • Pin post
    • Update info (e.g. discord username)

Fetch data from discord

  • Add bot to MLH Discord
  • get previous messages from topics category
    • get links from messages, include title of link (if possible)
    • make database request with new "post" object

- [ ] get user data
- [x] user name, discord tag, nickname
- [ ] user pod, user project
- [x] user role (fellow/mentor/maintainer)
- [ ] map discord info to github info if possible (maybe manually if time permits?)

Fetch contact data from Github

We should further discussion how to split all this contact data into posts. But here are some proposals for now (where each bullet is its own post):

Larger but general:

  • MLH Staff (and their roles if possible)
  • Pods (their mascot, number, mentor, and repos)
  • All MLH Fellows (and their pods)

Smaller, but multiple

  • MLH Staff
  • Pods and their members and mentor
  • Repos by language

Mock up frontend in React

  • Card component
    • All should have: Title, creator, timestamp,
    • If a Youtube video:
      • Thumbnail, Youtube Channel(?)
    • Maybe click on it (or clicking on a button) will expand it to a popup.
  • Search bar
    • Text starting with # filters by tags
    • Filter by title otherwise
    • Commas should result in a separate filter (treated as an OR or AND)
  • Add post form
    • Floating button when unclicked
    • Offers options based on discussed types, and forms should match those types
  • Profile
    • Avatar, Full name (if applicable) else Github username, Discord username (if applicable) else have a prompt: Add your discord name
  • Navigation
    • Explore vs Dashboard based on the route

Add youtube player

Right now the Youtube posts simply contain a link to the video and a thumbnail. Ideally, clicking on the thumbnail opens a video player, either in a separate route or as a popup. (Will need the video Id)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.