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/
-
Clone this repository
-
Install Node.js dependencies
npm install
-
Install an ESLint plugin for your editor. For example: linter-eslint for Atom.
-
Install MongoDB@5
-
Start MongoDB
sudo systemctl start mongod
- Start the server
npm start
- Browse to http://localhost:3000
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.
- 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
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:
-
👑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
- Scrum Master
-
✍🏽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
- Scribe + Reporter
-
💡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
-
⚙️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?