diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3ff7671
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,4 @@
+node_modules
+documentation
+package-lock.json
+dist
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
index 0000000..857b2a5
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,11 @@
+# Changelog maintains details about all the releases of the application
+
+
+# [1.0.0-alpha-1](https://github.com/ajaysajwan/FET_FEST/tree/master-parking-solution/1.0.0-alpha-1) (2019-06-15)
+
+## Initial Alpha Release
+---
+
+### Feature
+* List here
+* List here
\ No newline at end of file
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
new file mode 100644
index 0000000..29628d3
--- /dev/null
+++ b/CONTRIBUTING.md
@@ -0,0 +1 @@
+# Team contributing for the development
\ No newline at end of file
diff --git a/README.md b/README.md
index 7e54f0c..d832263 100644
--- a/README.md
+++ b/README.md
@@ -1,141 +1,2 @@
-# WELCOME TO TECHTONIC FET FEST 2019
-
-The TECHTONIC FET fest will begin on **May 27, 2019** and will conclude with a highly competitive hackathon on **June 15, 2019**.
-
-This event is a XXXXX hosted organization wide event and will be conducted in three locations; **Pune, Gandhinagar and Hyderabad**
-
-The last date for applying for the hackathon is **June 10, 2019** Registration must be completed through the event website.
-
-The participation in the event comes with a list of rules and regulations. Read the rules carefully to fully understand the code of conduct during the event. Any non-compliance in the rules will lead to direct disqualification from the event.
-
-## GENERAL RULES
-
-* Responsibility of the components and the materials used during the hackathon lies solely on the participating teams.
-* Administrator reserves the right in their sole discretion to disqualify any individual it finds tampering with the entry process or the operation of the hackathon.
-* Any act of violation of the official rules or anything inappropriate, unsportsmanlike, not in the best interests of this hackathon, or a violation of any applicable law or regulation will be dealt with strict actions.
-
-
-## ENROLLMENT /PARTICIPATION
-
-* Only 10 teams in each location will be allowed to participate.
-* The selection of the team will solely depend on the selection of the topic submitted
-* A selection panel will scrutinize the topics sent for participation. Based on the selection criteria, the most distinctive topics will be selected for final participation. You will receive a mail once selected.
-* Each team can have a mentor who must be grade 5 or above (4 + 1 team)
-* The mentor will guide the team in ideation, planning, and perfecting the pitch
-* The TechTonic team will try its best to accommodate employees who register as individuals in multi-member teams.
-
-**Pune** – Participants will form a team of five members. A team can register with a minimum of 3 members, however, organizers will add two members to make it a 5-member team. The team must have at least 2 FET or Full stack developers.
-
-**Gandhinagar and Hyderabad** - Employees in Gandhinagar and Hyderabad can form a team of no more than 3 members. The team must have at least 1 FET or Full stack developer.
-
-
-## TECHNOLOGY
-
-### Team vs Individual technology
-* If you register as a team, the following technology rules will apply.
-* If you register as an individual, the technologies applicable to the individual will be considered while allocating to an existing team.
-
-### Technology Rules
-The following technology criteria will be considered for participation:
-
-### Must use at least one of these technology pairings
-* Typescript + Angular
-* ES6+ ReactJS
-* VueJS
-
-
-### Good to use these technology pairings
-* HTML5/CSS3
-* SCSS/SASS
-* Bootstrap/RWD
-* jQuery, JavaScript, OOJS
-
-### Optional to use these technologies
-* NodeJS
-* .NET
-* JAVA
-* PHP
-* PERL
-
-### SDKs, APIs & Data
-Applications may integrate third-party SDKs, APIs, and services, provided the maker is authorized to use them.
-
-## EQUIPMENT
-
-* The participants must bring their own equipment such as a laptop, data dongle, and any other equipment necessary to prepare and be able to participate in the Hackathon.
-* No network connection will be provided inside the premise.
-* All the equipment will have to go through security check.
-
-## CHALLENGE YOURSELF
-
-### The creation
-The team must build a working software application that runs on frontend technology and can be paired with the above-mentioned backend technologies. Do not build on top of old projects.
-
-### Review/Testing:
-* The team must make the application available without any restriction, for testing, evaluation and for use by the judges following the event until the judging period ends.
-* The topics for the articles will be reviewed beforehand to avoid any duplication.
-* The team must make their application available for testing by Including a link to the application code on GitHub or BitBucket.
-* The code repository may be public or private:
-* If the repository is private, access must be given in the testing instructions provided with your submission.
-
-
-The code will be used only for application review and testing. Include all deployment files and testing instructions required for testing the application.
-
-## IP RULES
-
-### Intellectual Property Rights
-All submissions remain the intellectual property of the individuals or team that developed them.
-
-### Protection of Intellectual Property
-By submitting an entry or accepting any prize, you represent and warrant the following:
-
-you will not submit content that is copyrighted, protected by trade secret or otherwise. subject to third-party intellectual property rights or other proprietary rights, including privacy and publicity rights, unless you are the owner of such rights or have permission from their rightful owner to post the content; and the content submitted by you does not contain any viruses, Trojan horses, worms or other disabling devices or harmful code.
-
-### Copyright
-The participant represents and warrants that they are the sole author and copyright owner of the submission and that the submission is an original work of the participant.
-
-If the submission is a work based on an existing application, then the participant has acquired sufficient rights to use and authorize others; and that the submission does not infringe upon any copyright or upon any other third-party rights of which the participant is aware. The submission should be free of malware.
-
-## WINNER SELECTION/JUDGING CRITERIA
-
-The judges will evaluate all eligible submissions on the following criteria:
-
-* **Creativity**: Creativity and originality of the idea
-* **Technology**: How well FET technologies were leveraged by the developer
-* **Impact**: Extent to which the solution can be useful
-* **Scalability**: Potential growth of the application
-
-### Small little tit-bits
-* Any disputes arising out of or in relation with the Hackathon shall be settled amicably
-* Questions with respect to the Hackathon can be directed to the appropriate location contact: techtonic@XXXXX.com
-
-
-# CODE SETUP
-
-## Fork this repository
-
-Team leader need to fork this repository, for more help please visit (**https://help.github.com/en/articles/fork-a-repo**) Rest of the team member can contribute to the forked repository.
-
-* **Don't commit any code in master repo, it will be not approved. Only commit the code in forked repository**
-* **You can create multiple fork repository, and PULL request to common fork repository for review**
-* **Only one repository will be considered for code review from the panel, multiple repository/branch will not be considered**
-
-
-## Set up Sonar
-
-Open **sonar-project.properties** file and update these properties before staring off the project.
-
-```sonar.projectKey=my: ```
-
-Where **** will be team name and theme without space, however you can use ```_```.
-
-```sonar.projectName= ```
-
-Where **** will be short name of your project/theme.
-
-
-### Disclaimer
-XXXXX is just a facilitator of such events and will not hold any responsibility or accountability of any incident/accident/mis happening/IP or copyright infringement.
-
-**The attendance to the event will be at your own discretion.**
+# SMART SYSTEM
diff --git a/_config.yml b/_config.yml
new file mode 100644
index 0000000..c419263
--- /dev/null
+++ b/_config.yml
@@ -0,0 +1 @@
+theme: jekyll-theme-cayman
\ No newline at end of file
diff --git a/angular.json b/angular.json
new file mode 100644
index 0000000..f4f3d2e
--- /dev/null
+++ b/angular.json
@@ -0,0 +1,139 @@
+{
+ "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
+ "version": 1,
+ "newProjectRoot": "projects",
+ "projects": {
+ "kisaan": {
+ "root": "",
+ "sourceRoot": "src",
+ "projectType": "application",
+ "prefix": "app",
+ "schematics": {
+ "@schematics/angular:component": {
+ "styleext": "scss"
+ }
+ },
+ "architect": {
+ "build": {
+ "builder": "@angular-devkit/build-angular:browser",
+ "options": {
+ "outputPath": "dist/kisaan",
+ "index": "src/index.html",
+ "main": "src/main.ts",
+ "polyfills": "src/polyfills.ts",
+ "tsConfig": "src/tsconfig.app.json",
+ "assets": [
+ "src/favicon.ico",
+ "src/assets"
+ ],
+ "styles": [
+ "src/styles.scss"
+ ],
+ "scripts": []
+ },
+ "configurations": {
+ "production": {
+ "fileReplacements": [
+ {
+ "replace": "src/environments/environment.ts",
+ "with": "src/environments/environment.prod.ts"
+ }
+ ],
+ "optimization": true,
+ "outputHashing": "all",
+ "sourceMap": false,
+ "extractCss": true,
+ "namedChunks": false,
+ "aot": true,
+ "extractLicenses": true,
+ "vendorChunk": false,
+ "buildOptimizer": true,
+ "budgets": [
+ {
+ "type": "initial",
+ "maximumWarning": "2mb",
+ "maximumError": "5mb"
+ }
+ ]
+ }
+ }
+ },
+ "serve": {
+ "builder": "@angular-devkit/build-angular:dev-server",
+ "options": {
+ "browserTarget": "kisaan:build"
+ },
+ "configurations": {
+ "production": {
+ "browserTarget": "kisaan:build:production"
+ }
+ }
+ },
+ "extract-i18n": {
+ "builder": "@angular-devkit/build-angular:extract-i18n",
+ "options": {
+ "browserTarget": "kisaan:build"
+ }
+ },
+ "test": {
+ "builder": "@angular-devkit/build-angular:karma",
+ "options": {
+ "main": "src/test.ts",
+ "polyfills": "src/polyfills.ts",
+ "tsConfig": "src/tsconfig.spec.json",
+ "karmaConfig": "src/karma.conf.js",
+ "styles": [
+ "src/styles.scss"
+ ],
+ "scripts": [],
+ "assets": [
+ "src/favicon.ico",
+ "src/assets"
+ ]
+ }
+ },
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": [
+ "src/tsconfig.app.json",
+ "src/tsconfig.spec.json"
+ ],
+ "exclude": [
+ "**/node_modules/**"
+ ]
+ }
+ }
+ }
+ },
+ "kisaan-e2e": {
+ "root": "e2e/",
+ "projectType": "application",
+ "prefix": "",
+ "architect": {
+ "e2e": {
+ "builder": "@angular-devkit/build-angular:protractor",
+ "options": {
+ "protractorConfig": "e2e/protractor.conf.js",
+ "devServerTarget": "kisaan:serve"
+ },
+ "configurations": {
+ "production": {
+ "devServerTarget": "kisaan:serve:production"
+ }
+ }
+ },
+ "lint": {
+ "builder": "@angular-devkit/build-angular:tslint",
+ "options": {
+ "tsConfig": "e2e/tsconfig.e2e.json",
+ "exclude": [
+ "**/node_modules/**"
+ ]
+ }
+ }
+ }
+ }
+ },
+ "defaultProject": "kisaan"
+}
\ No newline at end of file
diff --git a/e2e/protractor.conf.js b/e2e/protractor.conf.js
new file mode 100644
index 0000000..86776a3
--- /dev/null
+++ b/e2e/protractor.conf.js
@@ -0,0 +1,28 @@
+// Protractor configuration file, see link for more information
+// https://github.com/angular/protractor/blob/master/lib/config.ts
+
+const { SpecReporter } = require('jasmine-spec-reporter');
+
+exports.config = {
+ allScriptsTimeout: 11000,
+ specs: [
+ './src/**/*.e2e-spec.ts'
+ ],
+ capabilities: {
+ 'browserName': 'chrome'
+ },
+ directConnect: true,
+ baseUrl: 'http://localhost:4200/',
+ framework: 'jasmine',
+ jasmineNodeOpts: {
+ showColors: true,
+ defaultTimeoutInterval: 30000,
+ print: function() {}
+ },
+ onPrepare() {
+ require('ts-node').register({
+ project: require('path').join(__dirname, './tsconfig.e2e.json')
+ });
+ jasmine.getEnv().addReporter(new SpecReporter({ spec: { displayStacktrace: true } }));
+ }
+};
\ No newline at end of file
diff --git a/e2e/src/app.e2e-spec.ts b/e2e/src/app.e2e-spec.ts
new file mode 100644
index 0000000..7f9a0d9
--- /dev/null
+++ b/e2e/src/app.e2e-spec.ts
@@ -0,0 +1,14 @@
+import { AppPage } from './app.po';
+
+describe('workspace-project App', () => {
+ let page: AppPage;
+
+ beforeEach(() => {
+ page = new AppPage();
+ });
+
+ it('should display welcome message', () => {
+ page.navigateTo();
+ expect(page.getTitleText()).toEqual('Welcome to kisaan!');
+ });
+});
diff --git a/e2e/src/app.po.ts b/e2e/src/app.po.ts
new file mode 100644
index 0000000..72e463a
--- /dev/null
+++ b/e2e/src/app.po.ts
@@ -0,0 +1,11 @@
+import { browser, by, element } from 'protractor';
+
+export class AppPage {
+ navigateTo() {
+ return browser.get('/');
+ }
+
+ getTitleText() {
+ return element(by.css('app-root h1')).getText();
+ }
+}
diff --git a/e2e/tsconfig.e2e.json b/e2e/tsconfig.e2e.json
new file mode 100644
index 0000000..a6dd622
--- /dev/null
+++ b/e2e/tsconfig.e2e.json
@@ -0,0 +1,13 @@
+{
+ "extends": "../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "../out-tsc/app",
+ "module": "commonjs",
+ "target": "es5",
+ "types": [
+ "jasmine",
+ "jasminewd2",
+ "node"
+ ]
+ }
+}
\ No newline at end of file
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..92d2880
--- /dev/null
+++ b/package.json
@@ -0,0 +1,64 @@
+{
+ "name": "SPAS",
+ "version": "1.0.0-alpha",
+ "scripts": {
+ "ng": "ng",
+ "start": "ng serve",
+ "build": "ng build",
+ "test": "ng test",
+ "lint": "ng lint",
+ "e2e": "ng e2e",
+ "compodoc": "./node_modules/.bin/compodoc -p tsconfig.json"
+ },
+ "private": true,
+ "engines": {
+ "node": "10.16.0",
+ "npm": "6.9.0"
+ },
+ "dependencies": {
+ "@angular/animations": "7.2.0",
+ "@angular/common": "7.2.0",
+ "@angular/compiler": "7.2.0",
+ "@angular/core": "7.2.0",
+ "@angular/fire": "^5.2.1",
+ "@angular/forms": "7.2.0",
+ "@angular/platform-browser": "7.2.0",
+ "@angular/platform-browser-dynamic": "7.2.0",
+ "@angular/router": "7.2.0",
+ "@firebase/auth": "^0.11.3",
+ "@firebase/auth-types": "^0.7.0",
+ "@firebase/firestore": "^1.3.5",
+ "@ng-bootstrap/ng-bootstrap": "4.0.0",
+ "@ngx-translate/core": "11.0.1",
+ "@ngx-translate/http-loader": "4.0.0",
+ "angularfire2": "^5.2.1",
+ "bootstrap": "4.0.0",
+ "core-js": "2.5.4",
+ "firebase": "^6.1.1",
+ "rxjs": "6.3.3",
+ "tslib": "1.9.0",
+ "zone.js": "0.8.26"
+ },
+ "devDependencies": {
+ "@angular-devkit/build-angular": "0.12.0",
+ "@angular/cli": "7.2.0",
+ "@angular/compiler-cli": "7.2.0",
+ "@angular/language-service": "7.2.0",
+ "@types/node": "8.9.4",
+ "@types/jasmine": "2.8.8",
+ "@types/jasminewd2": "2.0.3",
+ "codelyzer": "4.5.0",
+ "jasmine-core": "2.99.1",
+ "jasmine-spec-reporter": "4.2.1",
+ "karma": "3.1.1",
+ "karma-chrome-launcher": "2.2.0",
+ "karma-coverage-istanbul-reporter": "2.0.1",
+ "karma-jasmine": "1.1.2",
+ "karma-jasmine-html-reporter": "0.2.2",
+ "protractor": "5.4.0",
+ "ts-node": "7.0.0",
+ "tslint": "5.11.0",
+ "typescript": "3.2.2",
+ "@compodoc/compodoc": "1.0.5"
+ }
+}
diff --git a/sonar-project.properties b/sonar-project.properties
index 8b37ef1..dba2c8d 100644
--- a/sonar-project.properties
+++ b/sonar-project.properties
@@ -1,8 +1,8 @@
# must be unique in a given SonarQube instance
-sonar.projectKey=my:
+sonar.projectKey=my:
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
-sonar.projectName=
+sonar.projectName=
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
diff --git a/src/app/app.component.html b/src/app/app.component.html
new file mode 100644
index 0000000..9af5c1a
--- /dev/null
+++ b/src/app/app.component.html
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/src/app/app.component.scss b/src/app/app.component.scss
new file mode 100644
index 0000000..e69de29
diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts
new file mode 100644
index 0000000..cffbecc
--- /dev/null
+++ b/src/app/app.component.spec.ts
@@ -0,0 +1,35 @@
+import { TestBed, async } from '@angular/core/testing';
+import { RouterTestingModule } from '@angular/router/testing';
+import { AppComponent } from './app.component';
+
+describe('AppComponent', () => {
+ beforeEach(async(() => {
+ TestBed.configureTestingModule({
+ imports: [
+ RouterTestingModule
+ ],
+ declarations: [
+ AppComponent
+ ],
+ }).compileComponents();
+ }));
+
+ it('should create the app', () => {
+ const fixture = TestBed.createComponent(AppComponent);
+ const app = fixture.debugElement.componentInstance;
+ expect(app).toBeTruthy();
+ });
+
+ it(`should have as title 'kisaan'`, () => {
+ const fixture = TestBed.createComponent(AppComponent);
+ const app = fixture.debugElement.componentInstance;
+ expect(app.title).toEqual('kisaan');
+ });
+
+ it('should render title in a h1 tag', () => {
+ const fixture = TestBed.createComponent(AppComponent);
+ fixture.detectChanges();
+ const compiled = fixture.debugElement.nativeElement;
+ expect(compiled.querySelector('h1').textContent).toContain('Welcome to kisaan!');
+ });
+});
diff --git a/src/app/app.component.ts b/src/app/app.component.ts
new file mode 100644
index 0000000..1601e9e
--- /dev/null
+++ b/src/app/app.component.ts
@@ -0,0 +1,14 @@
+import { Component } from '@angular/core';
+import { TranslateService } from '@ngx-translate/core';
+
+@Component({
+ selector: 'app-root',
+ templateUrl: './app.component.html',
+ styleUrls: ['./app.component.scss']
+})
+export class AppComponent {
+ constructor(private translateService: TranslateService) {
+ this.translateService.setDefaultLang('en-US');
+ this.translateService.use('en-US');
+ }
+}
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
new file mode 100644
index 0000000..5d0d4ff
--- /dev/null
+++ b/src/app/app.module.ts
@@ -0,0 +1,43 @@
+import { BrowserModule } from '@angular/platform-browser';
+import { NgModule } from '@angular/core';
+import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
+import { TranslateHttpLoader } from '@ngx-translate/http-loader';
+import { HttpClient, HttpClientModule } from '@angular/common/http';
+
+import { environment } from '../environments/environment';
+import { AngularFireModule } from '@angular/fire';
+import { AngularFirestoreModule, AngularFirestore } from '@angular/fire/firestore';
+import { AngularFireStorageModule } from '@angular/fire/storage';
+import { AngularFireAuthModule } from '@angular/fire/auth';
+
+import { AppComponent } from './app.component';
+import { routing } from 'src/app/app.routing';
+
+export function createTranslateLoader(http: HttpClient) {
+ return new TranslateHttpLoader(http, './assets/i18n/', '.json');
+}
+
+@NgModule({
+ declarations: [
+ AppComponent,
+ ],
+ imports: [
+ BrowserModule,
+ HttpClientModule,
+ routing,
+ TranslateModule.forRoot({
+ loader: {
+ provide: TranslateLoader,
+ useFactory: (createTranslateLoader),
+ deps: [HttpClient]
+ }
+ }),
+ AngularFireModule.initializeApp(environment.firebase, 'SPAS'),
+ AngularFirestoreModule, // imports firebase/firestore, only needed for database features
+ AngularFireAuthModule, // imports firebase/auth, only needed for auth features,
+ AngularFireStorageModule // imports firebase/storage only needed for storage features
+ ],
+ providers: [],
+ bootstrap: [AppComponent]
+})
+export class AppModule { }
diff --git a/src/app/app.routing.ts b/src/app/app.routing.ts
new file mode 100644
index 0000000..437f36c
--- /dev/null
+++ b/src/app/app.routing.ts
@@ -0,0 +1,10 @@
+import { Routes, RouterModule } from '@angular/router';
+import { ModuleWithProviders } from '@angular/compiler/src/core';
+
+const routes: Routes = [
+ { path: '', redirectTo: 'spas', pathMatch: 'full' },
+ { path: 'spas', loadChildren: '../modules/parking-module/spas.module#SpasModule' }
+];
+
+export const routing: ModuleWithProviders = RouterModule.forRoot(routes);
+
diff --git a/src/assets/.gitkeep b/src/assets/.gitkeep
new file mode 100644
index 0000000..e69de29
diff --git a/src/assets/i18n/en-US.json b/src/assets/i18n/en-US.json
new file mode 100644
index 0000000..3a6dad5
--- /dev/null
+++ b/src/assets/i18n/en-US.json
@@ -0,0 +1,3 @@
+{
+ "label_name": "Smart Parking Assist System"
+}
\ No newline at end of file
diff --git a/src/assets/i18n/hi-IN.json b/src/assets/i18n/hi-IN.json
new file mode 100644
index 0000000..edb4f2b
--- /dev/null
+++ b/src/assets/i18n/hi-IN.json
@@ -0,0 +1,4 @@
+{
+ "label_name": "स्मार्ट पार्किंग असिस्ट सिस्टम"
+}
+
diff --git a/src/assets/img/bg-1.png b/src/assets/img/bg-1.png
new file mode 100644
index 0000000..0c05233
Binary files /dev/null and b/src/assets/img/bg-1.png differ
diff --git a/src/assets/img/bg.png b/src/assets/img/bg.png
new file mode 100644
index 0000000..bf8ac2f
Binary files /dev/null and b/src/assets/img/bg.png differ
diff --git a/src/assets/img/car.jpg b/src/assets/img/car.jpg
new file mode 100644
index 0000000..7ff7ee1
Binary files /dev/null and b/src/assets/img/car.jpg differ
diff --git a/src/assets/img/carred.png b/src/assets/img/carred.png
new file mode 100644
index 0000000..4a0591b
Binary files /dev/null and b/src/assets/img/carred.png differ
diff --git a/src/assets/img/circled-left-arrow.png b/src/assets/img/circled-left-arrow.png
new file mode 100644
index 0000000..f0b79d7
Binary files /dev/null and b/src/assets/img/circled-left-arrow.png differ
diff --git a/src/assets/img/hourglass-sand-bottom.png b/src/assets/img/hourglass-sand-bottom.png
new file mode 100644
index 0000000..da49c4f
Binary files /dev/null and b/src/assets/img/hourglass-sand-bottom.png differ
diff --git a/src/assets/img/imgpsh_fullsize_anim (1) - Copy.png b/src/assets/img/imgpsh_fullsize_anim (1) - Copy.png
new file mode 100644
index 0000000..b0c1bcc
Binary files /dev/null and b/src/assets/img/imgpsh_fullsize_anim (1) - Copy.png differ
diff --git a/src/assets/img/imgpsh_fullsize_anim (1).png b/src/assets/img/imgpsh_fullsize_anim (1).png
new file mode 100644
index 0000000..c3a758b
Binary files /dev/null and b/src/assets/img/imgpsh_fullsize_anim (1).png differ
diff --git a/src/assets/img/imgpsh_fullsize_anim.jpg b/src/assets/img/imgpsh_fullsize_anim.jpg
new file mode 100644
index 0000000..b0defcf
Binary files /dev/null and b/src/assets/img/imgpsh_fullsize_anim.jpg differ
diff --git a/src/assets/img/marker.png b/src/assets/img/marker.png
new file mode 100644
index 0000000..a81c54d
Binary files /dev/null and b/src/assets/img/marker.png differ
diff --git a/src/assets/img/time-machine.png b/src/assets/img/time-machine.png
new file mode 100644
index 0000000..ca6ade0
Binary files /dev/null and b/src/assets/img/time-machine.png differ
diff --git a/src/assets/scss/_variable.scss b/src/assets/scss/_variable.scss
new file mode 100644
index 0000000..258f18c
--- /dev/null
+++ b/src/assets/scss/_variable.scss
@@ -0,0 +1,10 @@
+$light-green: #baf055;
+$blue: #0088ff;
+$blue-0: rgb(152, 214, 245);
+$grey: #e6ecec;
+$dark-green: #00d800;
+$green: #0ad90c;
+$yellow: #ffba00;
+$white: #ffffff;
+$black: #000000;
+$red: #ff0b0b;
diff --git a/src/browserslist b/src/browserslist
new file mode 100644
index 0000000..37371cb
--- /dev/null
+++ b/src/browserslist
@@ -0,0 +1,11 @@
+# This file is currently used by autoprefixer to adjust CSS to support the below specified browsers
+# For additional information regarding the format and rule options, please see:
+# https://github.com/browserslist/browserslist#queries
+#
+# For IE 9-11 support, please remove 'not' from the last line of the file and adjust as needed
+
+> 0.5%
+last 2 versions
+Firefox ESR
+not dead
+not IE 9-11
\ No newline at end of file
diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts
new file mode 100644
index 0000000..3612073
--- /dev/null
+++ b/src/environments/environment.prod.ts
@@ -0,0 +1,3 @@
+export const environment = {
+ production: true
+};
diff --git a/src/environments/environment.ts b/src/environments/environment.ts
new file mode 100644
index 0000000..2eed6f0
--- /dev/null
+++ b/src/environments/environment.ts
@@ -0,0 +1,25 @@
+// This file can be replaced during build by using the `fileReplacements` array.
+// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.
+// The list of file replacements can be found in `angular.json`.
+
+export const environment = {
+ production: false,
+ firebase: {
+ apiKey: 'AIzaSyCt587x8YjEAbc0c0WPSdhrFMwfzGJtDXU',
+ authDomain: 'spas-a7b7a.firebaseapp.com',
+ databaseURL: 'https://spas-a7b7a.firebaseio.com',
+ projectId: 'spas-a7b7a',
+ storageBucket: 'spas-a7b7a.appspot.com',
+ messagingSenderId: '85818314017',
+ appId: '1:85818314017:web:3e7c99047fad2866'
+ }
+};
+
+/*
+ * For easier debugging in development mode, you can import the following file
+ * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.
+ *
+ * This import should be commented out in production mode because it will have a negative impact
+ * on performance if an error is thrown.
+ */
+// import 'zone.js/dist/zone-error'; // Included with Angular CLI.
diff --git a/src/favicon.ico b/src/favicon.ico
new file mode 100644
index 0000000..382a6d1
Binary files /dev/null and b/src/favicon.ico differ
diff --git a/src/index.html b/src/index.html
new file mode 100644
index 0000000..1eb5270
--- /dev/null
+++ b/src/index.html
@@ -0,0 +1,14 @@
+
+
+
+
+ Smart Parking Assistant
+
+
+
+
+
+
+
+
+
diff --git a/src/karma.conf.js b/src/karma.conf.js
new file mode 100644
index 0000000..ee9caa1
--- /dev/null
+++ b/src/karma.conf.js
@@ -0,0 +1,31 @@
+// Karma configuration file, see link for more information
+// https://karma-runner.github.io/1.0/config/configuration-file.html
+
+module.exports = function (config) {
+ config.set({
+ basePath: '',
+ frameworks: ['jasmine', '@angular-devkit/build-angular'],
+ plugins: [
+ require('karma-jasmine'),
+ require('karma-chrome-launcher'),
+ require('karma-jasmine-html-reporter'),
+ require('karma-coverage-istanbul-reporter'),
+ require('@angular-devkit/build-angular/plugins/karma')
+ ],
+ client: {
+ clearContext: false // leave Jasmine Spec Runner output visible in browser
+ },
+ coverageIstanbulReporter: {
+ dir: require('path').join(__dirname, '../coverage'),
+ reports: ['html', 'lcovonly', 'text-summary'],
+ fixWebpackSourcePaths: true
+ },
+ reporters: ['progress', 'kjhtml'],
+ port: 9876,
+ colors: true,
+ logLevel: config.LOG_INFO,
+ autoWatch: true,
+ browsers: ['Chrome'],
+ singleRun: false
+ });
+};
\ No newline at end of file
diff --git a/src/main.ts b/src/main.ts
new file mode 100644
index 0000000..c7b673c
--- /dev/null
+++ b/src/main.ts
@@ -0,0 +1,12 @@
+import { enableProdMode } from '@angular/core';
+import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
+
+import { AppModule } from './app/app.module';
+import { environment } from './environments/environment';
+
+if (environment.production) {
+ enableProdMode();
+}
+
+platformBrowserDynamic().bootstrapModule(AppModule)
+ .catch(err => console.error(err));
diff --git a/src/modules/parking-module/components/location-list/location-list.component.html b/src/modules/parking-module/components/location-list/location-list.component.html
new file mode 100644
index 0000000..3d1ddab
--- /dev/null
+++ b/src/modules/parking-module/components/location-list/location-list.component.html
@@ -0,0 +1,19 @@
+