Acebook is a full stack MCV social media web application. It was developed as a group project at Makers Academy.
Users can:
- Create a profile and add a profile picture
- Add other users to their friends list
- Make a text post
- See their friends' posts
- Comment on posts
- Like posts and comments
- Delete their own posts and comments
Acebook uses the following tech stack:
- Express web framework for Node.js.
- Nodemon to reload the server automatically.
- Handlebars to render view templates.
- MongoDB database system.
- Mongoose to model objects in MongoDB.
- ESLint for linting.
- Jest for testing.
- Cypress for end-to-end testing.
To install:
npm install
To install MongoDB:
brew tap mongodb/brew
brew install mongodb-community@5.0
Note: If you see a message that says If you need to have mongodb-community@5.0 first in your PATH, run:
, follow the instruction. Restart your terminal after this.
To start MongoDB:
brew services start mongodb-community@5.0
To run all tests:
npm test
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.
As our project grew in scale, our group's codebase and routes became more complicated. We decided to use Excalidraw with its live collaboration feature to map this out as we could make easy to understand sketches that could be altered by group members when they were updating new routes and features.
We also used Excalidraw to design the page layout.
Our group would have regular two-day sprints, generating tickets at the start of each sprint that we would track in Trello. Group members be assigned tickets to complete and could then choose remaining tickets from the To Do list to work on. Completed tickets would be moved to In Review list when a pull request was made for that ticket's branch to the group's Github repo. After another pair had reviewed and merged that branch the ticket would be moved to the Done list.