Working in a team to product a social media platform. Week 8 and 9 of Makers Academy.
By Coral Baker, David Ewan Campbell, Conor Hope, Jordan Manu, Alexis Morcrette, Rupert Pople and Ruzeka Uddin.
Use high-quality processes to build a project in a team.
- MongoDB for the database.
- Node.js for runtime JavaScript.
- Express web framework for Node.js.
- Handlebars to render view templates.
- Mongoose to model objects in MongoDB.
- Nodemon to reload the server automatically.
- ESLint for linting.
- Jest for testing.
- Cypress for end-to-end testing.
- MongoDB Atlas for DB hosting.
- Heroko for hosting for deployment.
- MongoDB Compass for DB GUI.
- Trello for agile development.
- Discord for team working and pair programming
- Easy Retro for team retrospectives.
- Github and Git for version control.
Authentification
- Users can sign up
- No duplicate sign-up accounts
- Passwords are encrpyted
- Users can sign in
- Easy session navigation
Posts:
- User can make posts
- Posts appear with newest post first
- Posts show dates they were created
- Posts show who made them
- Posts can be liked and number of likes is visible next to the post
- Posts can have multiple lines
- Users can delete their posts
Comments
- Users can add comments to posts
UX
- Delightful user experience
Usability and Reliability
- Data stored in dabase
- Dynamic front-end reducing number of server requests
Development:
- Continuous integration
- Continuous deployment
To explore the codebase follow this set-up:
- 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
- Install Node.js dependencies
npm install
- Install an ESLint plugin for your editor. For example: linter-eslint for Atom.
- 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 and run the following command. - Start MongoDB
brew services start [email protected]
- 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
Some people occasionally experience MongoDB connection errors when running the tests or trying to use the application. Here are some tips which might help resolve such issues.
- Check that MongoDB is installed using
mongo --version
- Check that it's running using
brew services list
- Try swapping
localhost
, everywhere that it appears in your codebase, with127.0.0.1
. It might be surprising but this does sometimes make a difference.
If you have issues that are not resolved by these tips, please reach out to a coach and, once the issue is resolved, we can add a new tip!
git clone path-to-your-repo
command_to_install_dependencies
(e.g. bundle
)