Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cjsheets/angular-nightlife-app
Simple, proof-of-concept nightlife coordination app leveraging the Yelp API, social media authentication, and user feedback. Built with Angular + Node.js and deployed to Heroku.
https://github.com/cjsheets/angular-nightlife-app
Last synced: about 1 month ago
JSON representation
Simple, proof-of-concept nightlife coordination app leveraging the Yelp API, social media authentication, and user feedback. Built with Angular + Node.js and deployed to Heroku.
- Host: GitHub
- URL: https://github.com/cjsheets/angular-nightlife-app
- Owner: cjsheets
- License: mit
- Created: 2017-01-14T03:30:56.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2017-01-29T01:45:28.000Z (almost 8 years ago)
- Last Synced: 2024-11-07T07:25:05.069Z (3 months ago)
- Language: JavaScript
- Homepage: https://angular-nightlife.herokuapp.com
- Size: 12.9 MB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Nightlife Coordination App
## Overview
This app allows users to search for local venues, indicate their attendance, get directions
and see each venues Yelp rating. The client leverages Angular v2.x and Typescript backed by
a Node.js REST API and MongoDB datastore.A demo version of this app is deployed at: [https://angular-nightlife.herokuapp.com](https://angular-nightlife.herokuapp.com)
![](client/assets/image/app-screenshot.png?raw=true)
Part of the [FreeCodeCamp](https://www.freecodecamp.com/cjsheets) cirriculum based on the following user stories:
* As an unauthenticated user, I can view all bars in my area.
* As an authenticated user, I can add myself to a bar to indicate I am going there tonight.
* As an authenticated user, I can remove myself from a bar if I no longer want to go there.
* As an unauthenticated user, when I login I should not have to search again.## Install
Clone this repository and install npm dependencies:
```
git clone [email protected]:cjsheets/angular-nightlife-app.git
cd angular-nightlife-app
npm install
```### Setup API Access
To access the Yelp API (v3, Fusion), [you'll need a key](https://www.yelp.com/developers/documentation/v3). Once registered, create
`/client/environment/environment.ts` and add your key:```
export const environment = {
production: false,
api_url: 'http://localhost:5000',
yelp: {
expires_in: 123456789,
token_type: 'Bearer',
access_token: 'xxxxxxxxxxxxxxxxxxxxxxx'
}
};
```To leverage social media authentication, you'll need to register for developer tokens from
[Twitter](https://apps.twitter.com/),
[Facebook](https://developers.facebook.com/),
[Google](https://console.cloud.google.com/apis/credentials?project=angular-nightlife),
[GitHub](https://github.com/settings/developers), etc. Once registered, create
`/server/config/environment/development.env.js` from `production.env.js` and add keys where indicated.## Run
First, start the Node.js server in development mode:
```
npm run express-dev
```For client development, use angular-cli to launch the app:
```
ng serve
```Navigate to `http://localhost:4200`
For server development, build the client to `/dist`:
```
ng build
```Navigate to `http://localhost:5000`
## Technology Stack
This package contains:
| Front-End | Back-End |
| ------- | ------- |
| Angular v2.x | Node.js |
| RxJS | Express |
| HTML5/CSS | Passport |
| Webpack | MongoDB || Both |
| ------- |
| Typescript |
| Karma/Protractor |### Testing
* *Work in progress*
#### unit tests
Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
#### end-to-end tests
Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).
Before running the tests make sure you are serving the app via `ng serve`.### Credits:
* Login Seed - [domfarolino](https://github.com/domfarolino/angular2-login-seed)
### To-Do:
* Sort out promise return values
* implement express-verification
* improve loading icons when inteface is pending changes
* improve masonry loading output
* improve error handling
* different connect.session() MemoryStore solution
* investigate this._log undefined in Sentry.io
* handle http:// (not s) visitors
* revert console.log to _log, disable in prod### License
MIT License
[![Analytics](https://cjs-beacon.appspot.com/UA-10006093-3/github/cjsheets/angular-nightlife-app?pixel)](https://github.com/cjsheets/angular-nightlife-app)