Travel Angel is a MERN-stack web application used to safely and securely store travel documents.
- MongoDB - noSQL databse for storing collections.
- Express - Web framework for Node.js.
- React - JavaScript library for building user interface.
- Node.js - JavaScript run-time environment
- Mongoose - Object Data Mapper for MongoDB.
- Nodemon - reloads the server automatically on file-change (Not CSS though!).
- Jest - back-end unit testing.
- React Testing Library - front-end unit testing.
- Sketch - wireframing and mock-ups.
- GitHub Actions - continuous integration and automated deployment
- Trello (Kanban Board) - Kanban project board for managing tickets and observing workflow.
- Google Drive - Resources collection, and documentation of Team Charter and stand-ups/retros.
- Slack - messaging and visibility for GitHUb Pull Requests
- Zoom - Remote Pairing & Meetings
- Slideshow Illustrations - 1, 2, 3, 4, 5
- Passport Design
- Icons - Angel Heart, Wings
For a short demonstration of all the features Travel Angel has to offer, please watch the following video.
Travel.Angel.Demo.Video.mp4
Section on general approach
Note: The following steps assume you have access to Homebrew
Install Node Version Manager (NVM)
brew install nvm
Then follow the instructions to update your ~/.bash_profile
.
Open a new terminal
Install the latest long term support (LTS) version of Node.js, currently 16.14.2
.
nvm install 16
Assuming that homebrew is already installed:
brew tap mongodb/brew
brew install mongodb-community@5.0
brew services start mongodb-community@5.0
brew services list
The last command is checking that mongodb service has been started as a MacOS service, you should see something similar in your output
Name Status User File
mongodb-community started your-user ~/Library/LaunchAgents/homebrew.mxcl.mongodb-community.plist
Clone the repository to your local machine.
git clone https://github.com/adamwoodcock98/travel-angel
cd travel-angel
Once the repository has been cloned you will be able to install the dependencies from Node Package Manager.
cd server
npm install
cd ..
cd client
npm install
cd travel-angel
npm run start
Navigate to localhost:3000, or if you are having issues with DNS resolution 127.0.0.1:3000.
cd travel-angel
npm run start:test # Starts the test server - which has a testing database so as not to interfere with devor production databases
npm lint # Pre-test linting to expose any formatting errors
npm test:unit # Unit Tests for isolated model functionality
npm test:integration # Integration tests of end-to-end functionality
Alternatively all three of the above commands (Linting, Unit, and Integration tests) can be chained by running npm run test