Yatrum built with ❤️ using Angular2, ngrx store, observables and reactive forms.
- Yatrum uses @ngrx libraries, showcasing common patterns and best practices.
- Yatrum is a travel diary app for travellers.
- Travellers can create itinerary for their trips.
- This application utilises @ngrx/store to manage the state of the app and to cache requests made to the Backend API, @angular/router to manage navigation between routes, @ngrx/effects to isolate side effects.
Angular Fundamentals Course
Based on this application we are working on a full blown Angular 2 fundamentals course on udemy. Throughout this course you'll learn how to build yatrum from ground up.
- Architecture, setup, source files
- TypeScript basics
- Getting started with latest angular
- Template fundamentals
- Rendering flows
- Component Architecture and Modules
- Services, Http and Observables
- Template Forms, Inputs and Validation
- Reactive Forms and more magic
Clone the repoo
$ git clone https://github.com/aviabird/yatrum.git $ cd yatrum
Install npm dependencies
$ npm install
For Social login to work you need to create an app on faceook and google and note down the client id and secret id of individual app. Below are instructions for creating app on inidviudal social media site
Once you have created the app,rename
secret.ts.example file in
app folder to
secret.ts and replace the dummy string with client id of respective social app.
Development server frontend
ng serve for a dev server. Navigate to
http://localhost:4200/. The app will automatically reload if you change any of the source files.
By default it connects to our dev api. If you want to setup the server locally clone the api and setup the rails server, However we only suggest that if you are familiar with Ruby on Rails. Please follow the instructions on the project page as the frontend uses the backend API to connect.
Running unit tests
ng test to execute the unit tests via Karma.
Running end-to-end tests
ng e2e to execute the end-to-end tests via Protractor.
Before running the tests make sure you are serving the app via
Deploying to Github Pages
ng github-pages:deploy to deploy to Github Pages.