diff --git a/angular.json b/angular.json index 0b6ee56..1765036 100644 --- a/angular.json +++ b/angular.json @@ -49,7 +49,13 @@ "development": { "optimization": false, "extractLicenses": false, - "sourceMap": true + "sourceMap": true, + "fileReplacements": [ + { + "replace": "src/environments/environment.ts", + "with": "src/environments/environment.development.ts" + } + ] } }, "defaultConfiguration": "production" @@ -86,5 +92,8 @@ } } } + }, + "cli": { + "analytics": false } } diff --git a/public/home.jpg b/public/home.jpg new file mode 100644 index 0000000..c77a487 Binary files /dev/null and b/public/home.jpg differ diff --git a/src/app/app.component.html b/src/app/app.component.html index a56b35a..acb9bac 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,4 +1,4 @@ - + diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 838bea1..3642636 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,11 +1,10 @@ import { Component } from '@angular/core'; import { RouterOutlet } from '@angular/router'; -import { LeafletMapComponent } from './components/leaflet-map/leaflet-map.component'; import { NavbarComponent } from './components/navbar/navbar.component'; @Component({ selector: 'app-root', - imports: [RouterOutlet, NavbarComponent, LeafletMapComponent], + imports: [RouterOutlet, NavbarComponent], templateUrl: './app.component.html', }) export class AppComponent { diff --git a/src/app/app.routes.ts b/src/app/app.routes.ts index dc39edb..a3c8012 100644 --- a/src/app/app.routes.ts +++ b/src/app/app.routes.ts @@ -1,3 +1,8 @@ import { Routes } from '@angular/router'; +import { HomePageComponent } from './components/home-page/home-page.component'; +import { LeafletMapComponent } from './components/leaflet-map/leaflet-map.component'; -export const routes: Routes = []; +export const routes: Routes = [ + {path: '', component: HomePageComponent}, + {path: 'map', component: LeafletMapComponent} +]; diff --git a/src/app/components/home-page/home-page.component.css b/src/app/components/home-page/home-page.component.css new file mode 100644 index 0000000..e69de29 diff --git a/src/app/components/home-page/home-page.component.html b/src/app/components/home-page/home-page.component.html new file mode 100644 index 0000000..67311cd --- /dev/null +++ b/src/app/components/home-page/home-page.component.html @@ -0,0 +1,58 @@ + +image carte du monde +
+ +
+
+
+
+ Équipe Memory sombre +
+
+

+ Bienvenue sur Memory Map +

+

+ Plongez dans un voyage interactif à travers vos souvenirs avec + Memory Map, l'application qui transforme vos aventures + en une carte unique et personnalisée. +

+

+ Enrichissez vos marqueurs avec des photos, des légendes, des notes personnelles, et même des amis + identifiés pour revivre chaque moment important. +

+ +
+
+
+ +
+
+
+

+ L'équipe Memory +

+

+ Toute l'équipe de Memory est fière de vous présenter + Memory Map, une application conçue avec passion et créativité pour vous permettre + de revivre vos meilleurs souvenirs et d'en découvrir de nouveaux. +

+

+ Nous vous remercions de nous accompagner dans cette belle aventure, et nous avons hâte de voir les + magnifiques cartes que vous allez créer ! +

+

+ Bonne année 2025 à tous, remplie de souvenirs inoubliables 🌍✨ +

+
+
+ Équipe Memory sombre +
+
+
+
diff --git a/src/app/components/home-page/home-page.component.spec.ts b/src/app/components/home-page/home-page.component.spec.ts new file mode 100644 index 0000000..c6f955d --- /dev/null +++ b/src/app/components/home-page/home-page.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { HomePageComponent } from './home-page.component'; + +describe('HomePageComponent', () => { + let component: HomePageComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [HomePageComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(HomePageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/home-page/home-page.component.ts b/src/app/components/home-page/home-page.component.ts new file mode 100644 index 0000000..643bba6 --- /dev/null +++ b/src/app/components/home-page/home-page.component.ts @@ -0,0 +1,13 @@ +import { Component } from '@angular/core'; +import { RouterLink } from '@angular/router'; + + +@Component({ + selector: 'app-home-page', + imports: [RouterLink], + templateUrl: './home-page.component.html', + styleUrl: './home-page.component.css' +}) +export class HomePageComponent { + +} diff --git a/src/app/components/leaflet-map/leaflet-map.component.ts b/src/app/components/leaflet-map/leaflet-map.component.ts index 9c2f936..4c0dd38 100644 --- a/src/app/components/leaflet-map/leaflet-map.component.ts +++ b/src/app/components/leaflet-map/leaflet-map.component.ts @@ -19,7 +19,14 @@ export class LeafletMapComponent implements OnInit { private initializeMap(): void { // Initialize the map - this.map = L.map('map').setView([46.603354, 1.888334], 6); + this.map = L.map('map', { + maxBounds: L.latLngBounds( + L.latLng(-90, -180), // South-West + L.latLng(90, 180) // North-East + ), + maxBoundsViscosity: 1.0, // Prevent dragging the map out of bounds + minZoom: 2, // Prevent zooming out too much + }).setView([46.603354, 1.888334], 6); // Add OpenStreetMap tiles L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { diff --git a/src/app/components/navbar/navbar.component.html b/src/app/components/navbar/navbar.component.html index df8c94e..608cd72 100644 --- a/src/app/components/navbar/navbar.component.html +++ b/src/app/components/navbar/navbar.component.html @@ -9,7 +9,7 @@ >Memory Map -
+
diff --git a/src/app/components/navbar/navbar.component.ts b/src/app/components/navbar/navbar.component.ts index 12cc284..ad41235 100644 --- a/src/app/components/navbar/navbar.component.ts +++ b/src/app/components/navbar/navbar.component.ts @@ -1,9 +1,24 @@ -import { Component } from '@angular/core'; +import { NgIf } from '@angular/common'; +import { Component, OnInit } from '@angular/core'; +import { NavigationEnd, Router } from '@angular/router'; import { AddPinPopupComponent } from '../add-pin-popup/add-pin-popup.component'; @Component({ selector: 'app-navbar', - imports: [AddPinPopupComponent], + imports: [AddPinPopupComponent, NgIf], templateUrl: './navbar.component.html', }) -export class NavbarComponent {} +export class NavbarComponent implements OnInit { + isHomePage: boolean = false; + + constructor(private router: Router) {} + + ngOnInit(): void { + this.isHomePage = this.router.url === '/'; + this.router.events.subscribe((event) => { + if (event instanceof NavigationEnd) { + this.isHomePage = event.url === '/'; + } + }); + } +} diff --git a/src/app/services/login.service.spec.ts b/src/app/services/login.service.spec.ts new file mode 100644 index 0000000..299b0d5 --- /dev/null +++ b/src/app/services/login.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { LoginService } from './login.service'; + +describe('LoginService', () => { + let service: LoginService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(LoginService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/services/login.service.ts b/src/app/services/login.service.ts new file mode 100644 index 0000000..bc33419 --- /dev/null +++ b/src/app/services/login.service.ts @@ -0,0 +1,22 @@ +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { Observable } from 'rxjs'; +import { environment } from '../../environments/environment'; + +@Injectable({ + providedIn: 'root', +}) +export class LoginService { + private apiUrl = environment.apiURL; + + constructor(private http: HttpClient) {} + + login(username: string, password: string): Observable { + return this.http.get(this.apiUrl + '/login', { + params: { + username: username, + password: password, + }, + }); + } +} diff --git a/src/environments/environment.development.ts b/src/environments/environment.development.ts new file mode 100644 index 0000000..89fad4e --- /dev/null +++ b/src/environments/environment.development.ts @@ -0,0 +1,4 @@ +export const environment = { + production: false, + apiURL: 'https://api.memorymap.fr/api/v1', +}; diff --git a/src/environments/environment.ts b/src/environments/environment.ts new file mode 100644 index 0000000..2c63d3c --- /dev/null +++ b/src/environments/environment.ts @@ -0,0 +1,4 @@ +export const environment = { + production: true, + apiURL: 'https://api.memorymap.fr/api/v1', +};