Skip to content

API which replicates Reddit´s posts and communities functionality

Notifications You must be signed in to change notification settings

ergonauta/hermes

Repository files navigation

Git Branches

The principal branches are:

  • master
    • Final product.
    • Do not merge from anything other than release and hotfix branches.
  • develop
    • Used for main line of work.
    • Created from master

The secondary branches are:

  • feature
    • Feature to add or expand.
    • Created from develop.
  • release
    • Hold candidates for new releases.
    • Only for bug fixing.
    • Created from develop.
  • hotfix
    • Solve bugs in main branch.
    • Created from master.
    • Once finished merge to master and develop.
  • junk
    • Functionality that is not going to be integrated.

Naming conventions

  1. Use group tokens
group1/foo
group1/fuu
group2/foo
groupn/fnn
  1. Use short lead tokens
feat - Feature
junk - Throwaway branch
rel - Release
fix - Hotfix
  1. Use slashes to separate parts

  2. Do not use numbers

  3. Avoid long names

Some examples:

feat/foo
feat/faa
rel/foo
fix/foo
junk/poc

Branching Structure

Project Planning

  • Create Github Repo
  • Implement babel
  • Create Project Structure
  • Research Project Architecture
  • Research TDD
  • Implement tests with jest
  • Implement TypesScript
  • Implement .env config parser
  • Create npm scripts
  • Run tests successfully with new structure
  • Create test database schema
  • Create branching structure and naming conventions
  • Create Loaders
    • Express Loader
    • Mongoose Loader
    • Test Loaders
    • Refactor mongoose loader for better testing. (Add functionality to close connections)
  • Add Logs for errors
    • Investigate how to log, types, when, why....
    • Implement Winston Logger as a utility
    • Change all logs with Winston logger
    • Listen to uncaught exceptions and promises
  • User Schema
    • Create User Interface
    • Create User Document
    • Create User Model
    • Create Schema
    • Hash passwords with bcryptjs before saving users
    • Create Tests
  • Post Schema
    • Create Post Interface
    • Create Post Document
    • Create Post Model
    • Create Schema
    • Create Tests
  • PostComment
    • Create PostComment Interface
    • Create PostComment Document
    • Create PostComment Model
    • Create Schema
    • Create Tests
  • Create Mock Data Creators for Tests
    • User Mock
    • Post Mock
    • PostComment Mock
  • Create helpers to create entries in mongoose using mock data
  • JWT