Acebook is a social networking site that resembles Facebook, created as part of the curriculum at Makers Academy during weeks 8-9 of the engineering program. The platform was constructed utilizing the MERN (MongoDB, Express, React, and Node.js) technology stack. Jest was used to test the backend and cypress was used to test the frontend.
- User sign up
- User log in / log out
- Create a new post / view a timeline of posts
- Create comments on posts
- Like / unlike posts & comments
- Post pictures or gifs
- Send a friend request, cancel a friend request, accept/ reject a friend request and delete a friend
- Update profile picture / cover photo
Through creating this app in a group environment, I improved my ability to:
- Work and communicate effectively within a software development team
- Break down projects into tasks and assign them to pairs
- Use agile ceremonies to organise work into sprints and improve processes
- Use a developer workflow to plan, implement and peer-review features
- Build fullstack web applications using the MERN stack
- Create a MongoDB database and implement routes that interact with and manipulate data in these databases
- Install Node Version Manager (NVM)
Then follow the instructions to update your
brew install nvm
~/.bash_profile
. - Open a new terminal
- Install the latest version of Node.js, currently
18.1.0
.nvm install 18
- Clone this repository to your local machine
- Install Node.js dependencies for both FE and BE (API)
; cd api ; npm install ; cd ../frontend ; npm install
- Install an ESLint plugin for your editor.
- Install MongoDB
Note: If you see a message that says
brew tap mongodb/brew brew install [email protected]
If you need to have [email protected] first in your PATH, run:
, follow the instruction. Restart your terminal after this. - Start MongoDB
brew services start [email protected]
- Start the server
Note the use of an environment variable for the JWT secret
; cd api
; JWT_SECRET=SUPER_SECRET npm start
- Start the front end
In a new terminal session...
; cd frontend
; npm start
Note the use of an environment variable for the JWT secret
Start the server in test mode (so that it connects to the test DB)
; cd api
; JWT_SECRET=SUPER_SECRET npm run start:test
Then run the tests in a new terminal session
; cd api
; JWT_SECRET=SUPER_SECRET npm run test
Note the use of an environment variable for the JWT secret
Start the server in test mode (so that it connects to the test DB)
; cd api
; JWT_SECRET=SUPER_SECRET npm run start:test
Then start the front end in a new terminal session
; cd frontend
; JWT_SECRET=SUPER_SECRET npm start
Then run the tests in a new terminal session
; cd frontend
; JWT_SECRET=SUPER_SECRET npm run test