diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts
index f491612..b0f08db 100644
--- a/src/app/app-routing.module.ts
+++ b/src/app/app-routing.module.ts
@@ -17,7 +17,7 @@ const routes: Routes = [
     path: 'admin',
     loadChildren: () =>
       import('./modules/admin/admin.module').then((m) => m.AdminModule),
-    canActivate: [AuthGuard]
+    // canActivate: [AuthGuard]
   },
   {
     path: '**',
diff --git a/src/app/modules/admin/admin.module.ts b/src/app/modules/admin/admin.module.ts
index de89c3e..d014422 100644
--- a/src/app/modules/admin/admin.module.ts
+++ b/src/app/modules/admin/admin.module.ts
@@ -18,6 +18,7 @@ import { SidebarItemComponent } from './components/sidebar/sidebar-components/si
 import { SidebarBurgerItemComponent } from './components/sidebar/sidebar-components/sidebar-burger-item/sidebar-burger-item.component';
 import { EditPostDialogComponent } from './components/edit-dialogs/edit-post-dialog/edit-post-dialog.component';
 import { MatDialogActions, MatDialogContent, MatDialogTitle } from '@angular/material/dialog';
+import { MatPaginatorModule } from "@angular/material/paginator";
 
 @NgModule({
   declarations: [
@@ -43,8 +44,9 @@ import { MatDialogActions, MatDialogContent, MatDialogTitle } from '@angular/mat
     ReactiveFormsModule,
     MatDialogTitle,
     MatDialogContent,
-    MatDialogActions
-  ],
+    MatDialogActions,
+    MatPaginatorModule
+],
   providers: []
 })
 export class AdminModule { }
diff --git a/src/app/modules/admin/components/postComponents/add-post/add-post.component.html b/src/app/modules/admin/components/postComponents/add-post/add-post.component.html
index 541c848..4d22e6d 100644
--- a/src/app/modules/admin/components/postComponents/add-post/add-post.component.html
+++ b/src/app/modules/admin/components/postComponents/add-post/add-post.component.html
@@ -20,7 +20,7 @@ 
+      
       
         
       
diff --git a/src/app/modules/admin/components/postComponents/add-post/add-post.component.ts b/src/app/modules/admin/components/postComponents/add-post/add-post.component.ts
index bd6c857..fe4491b 100644
--- a/src/app/modules/admin/components/postComponents/add-post/add-post.component.ts
+++ b/src/app/modules/admin/components/postComponents/add-post/add-post.component.ts
@@ -1,7 +1,11 @@
 import { Component, ViewChild, inject } from '@angular/core';
-import {Form, FormArray, FormBuilder, FormGroup, Validators } from "@angular/forms";
-import { Observable } from 'rxjs';
-import { PostsService } from '../../../shared/services/posts.service';
+import {FormArray, FormBuilder, FormGroup, Validators } from "@angular/forms";
+import { Image, PostInterface } from 'src/app/shared/interfaces/PostInterfaces';
+import { NewsService } from 'src/app/shared/services/news.service';
+import { PostMapperService } from '../../../shared/services/posts-mapper.service';
+import { ImageService } from 'src/app/shared/services/images.service';
+import { ImageUploaded } from 'src/app/shared/interfaces/ImageInterface';
+import { forkJoin, Observable } from 'rxjs';
 
 interface UploadedFile {
   preview: string,
@@ -19,6 +23,11 @@ export interface PostData {
   platforms: any,
 }
 
+export interface MapFormResult {
+  postData: PostInterface;
+  imageList?: FileList;
+}
+
 @Component({
     selector: 'app-add-post',
     templateUrl: './add-post.component.html',
@@ -28,7 +37,9 @@ export interface PostData {
 
 export class AddPostComponent {
   @ViewChild('attachments') attachment: any;
-  private service = inject(PostsService);
+  private newsService = inject(NewsService);
+  private imageService = inject(ImageService);
+  private postMapperService = inject(PostMapperService);
   protected postForm: FormGroup;
   public path: string = "../../../../../assets/";
   selectedFiles?: FileList;
@@ -38,53 +49,71 @@ export class AddPostComponent {
     this.postForm = this.fb.group({
       title: ['', Validators.required],
       author: ['', Validators.required],
-      attachments: [''],
       text: ['', Validators.required],
-      platforms: this.fb.array([
-        this.fb.control(false),
-        this.fb.control(false)
-      ])
+      // platforms: this.fb.array([
+      //   this.fb.control(false),
+      //   this.fb.control(false)
+      // ])
     });
   }
 
-  showPreview(event: any){
+  showPreview(event: any) {
     this.previews = [];
     this.selectedFiles = event.target.files;
 
-    if (this.selectedFiles && this.selectedFiles[0]) {
-      const numberOfFiles = this.selectedFiles.length;
-
-      for (let i = 0; i < numberOfFiles; i++) {
-        const reader = new FileReader();
-        const file = this.selectedFiles![i];
-
-        reader.onload = (event: any) => {
-          const preview = event.target.result;
-          this.previews.push({preview, file});
-        };
-        
-        reader.readAsDataURL(file);
-      }
+    if (this.selectedFiles && this.selectedFiles.length > 0) {
+      const filesArray = Array.from(this.selectedFiles);
+      const observables = filesArray.map(file => this.fileToBase64(file));
+
+      forkJoin(observables).subscribe({
+        next: (base64Array: string[]) => {
+          base64Array.forEach((preview, index) => {
+            this.previews.push({ preview, file: filesArray[index] });
+          });
+        },
+        error: (err) => console.error('Error converting files:', err)
+      });
     }
   }
 
-  onPost(): void {
-    const formValue = this.postForm.value;
-    const postData = {
-      id: '',
-      slug: '',
-      date: '',
-      title: formValue.title,
-      author: formValue.author,
-      text: formValue.text,
-      platforms: formValue.platforms,
-      attachments: this.previews.map(p => p.file)
-    };
-
-    console.log('Post Data:', postData);
-    this.service.getNewsService().onPost(postData);
+onPost(): void {
+  if (this.postForm.invalid) {
+    return;
   }
 
+  const result: MapFormResult = this.postMapperService.mapFormToPost(this.postForm.value, this.selectedFiles);
+  const { postData, imageList } = result;
+
+  if (imageList && imageList.length > 0) {
+    this.imageService.addImages(imageList).subscribe({
+      next: (imageUrls: ImageUploaded[]) => {
+        const imagesForPost = imageUrls.map(img => ({
+          id: img.id,
+          name: null,
+          type: null,
+          data: null
+        }))
+
+        // Tutaj przypisujemy pełne obiekty Image do posta
+        postData.images.push(...imagesForPost);
+
+        // Wysyłamy post do backendu
+        this.newsService.addPost(postData).subscribe({
+          next: () => this.postForm.reset(),
+          error: (err) => console.error('Error adding post:', err)
+        });
+      },
+      error: (err) => console.error('Error uploading images:', err)
+    });
+  } else {
+    this.newsService.addPost(postData).subscribe({
+      next: () => this.postForm.reset(),
+      error: (err) => console.error('Error adding post:', err)
+    });
+  }
+}
+
+
   onDelete(fileName: string) {
     const index: number = this.previews.findIndex((preview) => preview.file.name === fileName);
     this.previews.splice(index, 1);
@@ -119,5 +148,24 @@ export class AddPostComponent {
   trackByFn(index: number, item: any): number {
     return index;
   }
+
+
+  fileToBase64(file: File): Observable
 {
+    return new Observable(observer => {
+      const reader = new FileReader();
+
+      reader.onload = () => {
+        observer.next(reader.result as string);
+        observer.complete();
+      };
+
+      reader.onerror = (error) => {
+        observer.error('Error converting file to base64');
+      };
+
+      reader.readAsDataURL(file);
+      return () => reader.abort();
+    });
+  }
 }
 
diff --git a/src/app/modules/admin/components/postComponents/post/post.component.html b/src/app/modules/admin/components/postComponents/post/post.component.html
index 1899bea..a186a94 100644
--- a/src/app/modules/admin/components/postComponents/post/post.component.html
+++ b/src/app/modules/admin/components/postComponents/post/post.component.html
@@ -1,5 +1,5 @@
 
-    
{{post.title}}
-    
-    
+    
{{post().title}}
+    
+    
 Zarządzanie Postami
             Tytuł
             Opcje