Code Monkey home page Code Monkey logo

meowbook's Introduction

header

A social media website done as a team project for Makers.

The project was created in two weeks by six Makers students, to improve our understanding of JavaScript and to practice working in a team with agile and scrum practices, pair programming, problem solving, test-driving, github workflow.

The initial state of the project includes database setup and a barebones web app. Additional functionality has been added by the team, complete with design, implementation and full test coverage.

Deployed heroku app: https://dmeowbook.herokuapp.com/

Tech Stack

Languages

JavaScript Badge HTML5 Badge CSS3 Badge JSON Badge Markdown Badge

Frameworks, Library

Bootstrap Badge Cypress Badge Express Badge Handlebars.js Badge Heroku Badge Jest Badge MongoDB Badge Node.js Badge npm Badge

IDE, Group, Other

GNU Bash Badge ESLint Badge Git Badge iTerm2 Badge Postman Badge Prettier Badge Visual Studio Code Badge , GitHub Badge Slack Badge Trello Badge Zoom Badge , GNU Emacs Badge Krita Badge Vim Badge

TEAM Priceless

ddrmv's GitHub stats G-Redos's GitHub stats

44jovi's GitHub stats MarinaIvanova-1 's GitHub stats

ritaaktay 's GitHub stats oahciy's GitHub stats

Installation

Make sure you have NPM and Node.js installed, then

  1. Clone this repository

  2. Install Node.js dependencies

    npm install
    
  3. Install an ESLint plugin for your editor. For example: linter-eslint for Atom.

  4. Install MongoDB@5

  5. Start MongoDB

    sudo systemctl start mongod
    

Start

  1. Start the server
    npm start
    
  2. Browse to http://localhost:3000

Start test server

The server must be running locally with test configuration for the integration tests to pass.

npm run start:test

This starts the server on port 3030 and uses the acebook_test MongoDB database, so that integration tests do not interact with the development server.

Test

  • Run all tests
    npm test
    
  • Run a check
    npm run lint              # linter only
    npm run test:unit         # unit tests only
    npm run test:integration  # integration tests only

Team Charter

We are team Priceless

Bearing in mind the EQ learning we’ve done with Dana and elsewhere, we want to foster a good team to work in.

We plan to meet:

  • At 10am for morning standup (15min)
  • At 1.30pm for afternoon standup (15min)
  • At 5pm for a retro at the end of the day

We value:

  • Communication
  • Honesty
  • Growth
  • Teamwork and Support (Slack channel, Retros)
  • FUN!!!!

These roles rotate every 1.5 days:

  1. 👑Scrum Master/Leader

    • Scrum Master
      • Runs team’s Agile processes and meetings
      • Helps arrange backlog of tasks
      • Facilitates resolution of disagreements and conflicts
      • Helps clarify tasks and assists in estimation of those tasks
    • Leader
      • Makes sure that everyone is working on the right tasks
      • Makes sure everyone is working well together
  2. ✍🏽Scribe + Reporter/Helper

    • Scribe + Reporter
      • Makes notes about group activities and meetings
      • Reports what the group is working on and has done, both within the team and externally
    • Helper
      • Looks out for members who have taken on too much as well as members who don’t have enough to do
      • Looks out for the health of other members, ensures they’re taking breaks
      • Finds ways to keep team motivation up and makes sure successes are celebrated
  3. 💡Challenger + Ideas Person

    • Tries to think of what might go wrong
    • Tries to think of alternative ideas to solve problems
    • Explains these ideas to the team
  4. ⚙️Technician

    • Looks after the team’s tools and materials (github, etc.)
    • Makes sure everyone has the tools they need to do their job

Work Flows

  • Pairing

    • Pull latest version of main
    • Check-out a new branch / existing branch for your ticket
    • Work in branch, and keep committing upstream
    • Merge latest main again before pull request to avoid merge conflicts
    • Submit pull-request
    • Move card on Trello
    • Add PR link to card
    • Alert team on Slack
  • Trello protocol

    • If a pair is working on it, it has your name on it
    • If it needs review, it has the reviewers name
    • If it has been reviewed and needs updating, it is in the Updating column
    • If you are the second reviewer and all is ok, accept & merge
  • During pairings, resolve challenges by:

    • Debugging and stuck on a 1 hour+ blocker? ask for help!
    • Need to chat about something? Write on Slack
    • Need to know the answer now? Directly join a pair with whom you’d like to discuss an urgent issue.
    • Cannot move on unless big issue is resolved as a team? Ask scrum master for help

Stand-Up

  • Voice roles for the day
  • Do any tasks need breaking down?
  • Prioritise
  • Estimate
  • Sprint backlog
  • Assign rand() pairs

Retro

  • What did we think would happen, what actually happened?
  • What went well, what could we do better tomorrow?

Images

Design with Excalidraw

Excalidraw chart

Project management with Trello

Excalidraw chart

Test coverage with Jest

Tests pass

Deployment on Heroku

Working app

Links

  1. Google roles/resources
  2. Miro board
  3. Team Retro Board

footer

meowbook's People

Contributors

ritaaktay avatar 44jovi avatar oahciy avatar ddrmv avatar g-redos avatar edwardandress avatar marinaivanova-1 avatar johnforster avatar jamesjoshuahill avatar penguat avatar

Stargazers

 avatar

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.