MVP
As a user,
so that I can use Acebook,
I want to sign up with an account.
As a user,
so that I can return to my Acebook account,
I want to log in to my account.
As a user,
so that I can tell people about my day,
I want to create a new post.
As a user,
so that I can see what people are up to,
I want to be able to see all the posts on my timeline.
As a user,
so that I can make changes to what I have posted,
I would like to update my posts.
As a user,
so that I can remove a post if I've changed my mind,
I want to be able to delete a post.
Extras:
As a user,
so that I can see when people are posting,
I want to see the date at which the message was posted.
As a user,
so that I can see when people are updating their posts,
I want to see the date at which the message was updated.
As a user,
so I can keep up-to-date,
I want to see the posts in reverse chronological order
As a user,
so that people who are not signed up cannot see my posts,
I don’t want those without an account to access any pages except the homepage.
As a user,
so that I can comment on other peoples post,
I want to add a comment to a post
As a user,
so that I can delete my comment,
I want to delete a comment to a post
As a user,
so I can keep my profile up to date,
I would like to edit my profile information.
As a user,
so that people can see who I am,
I would like to set a profile photo.
As a user,
So that I can share my holiday pictures,
I want to be able to post an image with my message
As a user,
so that other people cannot edit and delete my posts,
I want to be the only person able to do this.
These are the technologies we used for our Acebook project:
- Express web framework for Node.js.
- Nodemon to reload the server automatically.
- Handlebars to render view templates.
- Mongoose to model objects in MongoDB.
- ESLint for linting.
- Jest for testing.
- Cypress for end-to-end testing.
https://trello.com/b/ibUZEbpH/acebook2
- Install Node Version Manager (NVM)
Then follow the instructions to update your
brew install nvm
~/.bash_profile
. - Open a new terminal
- Install the latest long term support (LTS) version of Node.js, currently
12.14.1
.nvm install 12.14.1
- Fork this repository
- Rename your fork to
acebook-<team name>
- Clone your fork to your local machine
- Install Node.js dependencies
npm install
- Install an ESLint plugin for your editor. For example: linter-eslint for Atom.
- Install MongoDB
brew tap mongodb/brew brew install [email protected]
- Start MongoDB
brew services start [email protected]
- Start the server
npm start
- Browse to http://localhost:3000
- 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
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.