An example project for becoming familiar with MEAN stack.
This project has been refactored into Abject Admin, which picks up right where I left off here. The new project integrates the contact list into a much larger intranet that can also house other tools.
contact-list
currently features the ability to list all contacts (name/email address/phone number) from a MongoDB data source.
Additionally, you can add new contacts, delete contacts, or edit contacts.
Based on this YouTube tutorial.
I have derailed from the tutorial quite a bit:
- This project uses Mongoose instead of MongoJS
- This project implements up-to-date Angular best-practices
- This project's concerns are separated appropriately
- This project features unit tests for client and server controllers
- This project utilizes
grunt
to automate several tasks - This project features dummy data for automated testing
- This project is styled with CSS
- This project features
animate.css
animations - This project utilizes
font-awesome
icons
- Clone the repo to your destination of choice.
- Install Node.js if you haven't already.
- Navigate to contact-list and install dependecies
- Install MongoDB if you haven't already.
- Run an instance of mongod.exe on localhost at port 27017 (default address).
- Run
npm install -g grunt-cli
if you wish to use automation tasks - Run
grunt
(or navigate to /server and runnode server
if you didn't install grunt) - Navigate to localhost:3000 to load the client.
This application uses the Jasmine testing framework for both client and server JavaScript files.
Client-side tests are run with Karma and server-side tests are run with jasmine-node.
If you have grunt, you can automate all tests with grunt test
.
If not, you can use karma start
to run client-side tests, and jasmine-node /server
to run server-side tests.