What's behind noodles.dev

Problem we'are trying to solve:

Finding quality learning resources proved to be difficult as there are many low quality, incomplete, outdated or incomplete tutorials Search engines are not able to rate the quality of learning resources and unfortunately very good content gets burried under many SEO optimized articles.

The solution:

A community curated database of tutorials/courses/books would save developers countless hours on learning new technologies

Features

User Types

Regular user

  • create new technology/learning resource
  • can edit own resource
  • submit edit suggestions on already created technology/learning resource
  • review learning resource
  • cast votes on technologies/edit suggestions

Moderator

  • can publish/reject edit suggestions
  • can directly edit a resource

Social Login

  • users can login/signup into noodles.dev by using their facebook/google account
  • can be extended to use any other existing identity provider

User Content Type

Technologies

Learning resources

  • can have one or many technologies.
  • each technology can have a version

Collections

  • a grouping of multiple learning resources
  • can be private or public

Searchable Database of Content

  • all the user created content can be filtered and searched

Wikipedia-like editing

  • any registered user can suggest edits on a particular resource
  • the suggested edits can be voted by the other users and can be published/rejected by moderators

Reward system for contributing

Every registered user has a score tracking the interactions

  • tracking other users voting on user’s content:
    • whenever a user’s resource or review get voted by other users, we track both thumbs up and thumbs down for the author.
    • thumbs up go into positive-score, thumbs down go into negative-score
  • tracking user voting on other authors:
    • we keep track of user votes thumbs up/down on someone’s content

Adding any resource (technology/learning resource) will contribute to the user’s positive score

Getting edit suggestions published will be rewarded, whereas getting rejected has a small score penalty

Measurables

Curent capabilities

  • up to 25 000 users/day
  • search through up to 1.2 milion records in under 0.5s

Speed

  • 0.7s load time for homepage
  • 0.7s load time for searchpage
  • 99/100 score on Google PageSpeed

Bundle Sizes

  • 1 .css file of 10.8 kB (top 10% of css bundle sizes < 14 kB)
  • 3 .js files totaling 72.1 kB - in the top 10% js bundle sizes < 108 kB)

Running costs

  • 16 USD/month

Implementation & Tech Stack

Priorites

  • SEO optimized
  • Fast
  • Low running costs
  • Maintainable

Tech Stack

  • frontend: CSS3, HTML5, ReactJS, JavaScript
  • backend: django 3.11, PostgreSQL, Redis, Elasticsearch 7.1
  • served with: nginx, gunicorn - development tools: git, webpack, npm