This app allows users to search for, list and trade records from their personal collection. The client is written with Angular v2.x and Typescript backed by Meteor.js v1.4 for real-time database synchronization.
A demo version of this app is deployed at: https://angular-trading.herokuapp.com/
Part of the FreeCodeCamp curriculum based on the following user stories:
- I can view all books posted by every user.
- I can add a new book.
- I can update my settings to store my full name, city, and state.
- I can propose a trade and wait for the other user to accept the trade.
If you need to install Meteor, run the following:
curl https://install.meteor.com/ | sh
Clone this repository and install npm dependencies:
git clone git@github.com:cjsheets/angular-trading-app.git
cd angular-trading-app
npm install
To access the Last.FM API, you'll need a key. Once registered, create
package.json
in the root of the repository:
{
"public": {
"last_fm": {
"key" : "xxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"api_url": "http://localhost:3000/api/proxy?"
}
}
Build and run the app using the settings file.
meteor run --settings settings.json
Navigate to http://localhost:3000
This package contains:
Front-End | Back-End |
---|---|
Angular v2.x | Meteor.js |
Meteor.js | MongoDB |
MiniMongo | Node.js |
RxJS | |
HTML5/SCSS |
Both |
---|
Typescript |
Mocha/Chai |
Deployed to Heroku using this buildpack
The folder structure is a mix between Angular 2 recommendation and Meteor 1.3 recommendation.
- Work in progress
The testing environment in this boilerplate based on Meteor recommendation, and uses Mocha as testing framework along with Chai for assertion.
There is a main test file that initialize Angular 2 tests library, it located under /client/init.test.ts
.
All other test files are located near the component/service it tests, with the .test.ts
extension.
- lint the code for each app (fix lint errors)
- write Mocha/Chai tests
- change notification icon for different trade states
- add typecasting to all possible functions
- revert console.log to _log, disable in prod
- improve masonry loading output
MIT License