diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/controller/AdminApi.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/controller/AdminApi.java
index 85f8838..41fe6dd 100644
--- a/MyINPulse-back/src/main/java/enseirb/myinpulse/controller/AdminApi.java
+++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/controller/AdminApi.java
@@ -123,8 +123,7 @@ public class AdminApi {
         String primaryMail = principal.getClaimAsString("email");
         String secondaryMail = principal.getClaimAsString("secondaryMail");
         String phoneNumber = principal.getClaimAsString("phoneNumber");
-        String school = principal.getClaimAsString("school");
         this.adminApiService.createAccount(
-                userSurname, username, primaryMail, secondaryMail, phoneNumber, school);
+                userSurname, username, primaryMail, secondaryMail, phoneNumber);
     }
 }
diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java
index 6794b5c..364415c 100644
--- a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java
+++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java
@@ -212,8 +212,7 @@ public class AdminApiService {
             String userSurname,
             String primaryMail,
             String secondaryMail,
-            String phoneNumber,
-            String school) {
+            String phoneNumber) {
         Administrator a =
                 new Administrator(username, userSurname, primaryMail, secondaryMail, phoneNumber);
         this.administratorService.addAdministrator(a);
diff --git a/documentation/openapi/src/adminApi.yaml b/documentation/openapi/src/adminApi.yaml
index 958cf11..3b66cd1 100644
--- a/documentation/openapi/src/adminApi.yaml
+++ b/documentation/openapi/src/adminApi.yaml
@@ -39,7 +39,7 @@ paths:
             schema:
               $ref: "./main.yaml#/components/schemas/project"
       responses:
-        "201": # Use 201 Created for successful creation
+        "200": # Use 200 Created for successful creation
           description: Created - Project added successfully. Returns the created project.
           content:
             application/json:
@@ -144,7 +144,7 @@ paths:
             schema:
               $ref: './main.yaml#/components/schemas/projectDecision'
       responses:
-        "204": # Use 204 No Content for successful action with no body
+        "200": # Use 200 No Content for successful action with no body
           description: No Content - Decision processed successfully.
         "400":
           description: Bad Request - Invalid input (e.g., missing decision).
@@ -191,7 +191,7 @@ paths:
           description: The ID of the user account to validate.
           example: 102
       responses:
-        "204":
+        "200":
           description: No Content - Account validated successfully.
         "400":
           description: Bad Request - Invalid user ID format.
@@ -247,7 +247,7 @@ paths:
             schema:
               $ref: "./main.yaml#/components/schemas/report"
       responses:
-        "201":
+        "200":
           description: Created - Report created and linked successfully. Returns the created report.
           content:
              application/json:
@@ -310,7 +310,7 @@ paths:
           description: The ID of the project to remove.
           example: 12
       responses:
-        "204":
+        "200":
           description: No Content - Project removed successfully.
         "400":
           description: Bad Request - Invalid project ID format.
@@ -337,9 +337,24 @@ paths:
           description: The ID of the user to grant admin rights.
           example: 103
       responses:
-        "204": # Use 204 No Content
+        "200": # Use 200 No Content
           description: No Content - Admin rights granted successfully.
         "400":
           description: Bad Request - Invalid user ID format or user is already an admin.     
         "401":
-          description: Unauthorized.  
\ No newline at end of file
+          description: Unauthorized.
+        
+  /admin/create-account:
+    post:
+      summary: Creates Admin out Jwt Token
+      tags:
+        - Admin API
+      security:
+        - MyINPulse: [MyINPulse-admin]
+      description: Create an admin instance in the MyINPulse DB of the information provided from the authenticated user's keycloack token.
+       The information required in the token are `userSurname`, `username`, `primaryMail`, `secondaryMail`, `phoneNumber`.
+      responses:
+        "200": 
+          description: No Content - Admin user created successfully.
+        "401":
+          description: Unauthorized.
\ No newline at end of file
diff --git a/documentation/openapi/src/bundled.yaml b/documentation/openapi/src/bundled.yaml
new file mode 100644
index 0000000..d663aac
--- /dev/null
+++ b/documentation/openapi/src/bundled.yaml
@@ -0,0 +1,957 @@
+openapi: 3.0.3
+info:
+  title: MyInpulse Backend API
+  description: 'This serves as an OpenAPI documentation for the MyInpulse backend service, covering operations for Entrepreneurs, Admins, and shared functionalities.'
+  version: 0.2.1
+tags:
+  - name: Entrepreneurs API
+    description: API endpoints primarily for Entrepreneur users.
+  - name: Admin API
+    description: API endpoints restricted to Admin users for management tasks.
+  - name: Shared API
+    description: API endpoints accessible by both Entrepreneurs and Admins.
+  - name: Unauth API
+    description: API endpoints related to user account management.
+components:
+  schemas:
+    user:
+      type: object
+      properties:
+        idUser:
+          type: integer
+          description: Unique identifier for the user.
+          example: 101
+        userSurname:
+          type: string
+          description: User's surname (last name).
+          example: Doe
+        userName:
+          type: string
+          description: User's given name (first name).
+          example: John
+        primaryMail:
+          type: string
+          format: email
+          description: User's primary email address.
+          example: john.doe@example.com
+        secondaryMail:
+          type: string
+          format: email
+          description: User's secondary email address (optional).
+          example: j.doe@personal.com
+        phoneNumber:
+          type: string
+          description: User's phone number.
+          example: '+33612345678'
+    user-entrepreneur:
+      allOf:
+        - $ref: '#/components/schemas/user'
+        - type: object
+          properties:
+            school:
+              type: string
+              description: The school the entrepreneur attends/attended.
+              example: ENSEIRB-MATMECA
+            course:
+              type: string
+              description: The specific course or program of study.
+              example: Electronics
+            sneeStatus:
+              type: boolean
+              description: Indicates if the user has SNEE status (Statut National d'Étudiant-Entrepreneur).
+              example: true
+      example:
+        idUser: 101
+        userSurname: Doe
+        userName: John
+        primaryMail: john.doe@example.com
+        secondaryMail: j.doe@personal.com
+        phoneNumber: '+33612345678'
+        school: ENSEIRB-MATMECA
+        course: Electronics
+        sneeStatus: true
+    user-admin:
+      allOf:
+        - $ref: '#/components/schemas/user'
+      example:
+        idUser: 55
+        userSurname: Admin
+        userName: Super
+        primaryMail: admin@myinpulse.com
+        phoneNumber: '+33512345678'
+    sectionCell:
+      type: object
+      description: Represents a cell (like a sticky note) within a specific section of a project's Lean Canvas.
+      properties:
+        idSectionCell:
+          type: integer
+          description: Unique identifier for the section cell.
+          example: 508
+        sectionId:
+          type: integer
+          description: 'Identifier of the Lean Canvas section this cell belongs to (e.g., 1 for Problem, 2 for Solution).'
+          example: 1
+        contentSectionCell:
+          type: string
+          description: The text content of the section cell.
+          example: Users find it hard to track project progress.
+        modificationDate:
+          type: string
+          format: date
+          description: The date when this cell was last modified.
+          example: 'yyyy-MM-dd HH:mm'
+    project:
+      type: object
+      description: Represents a project being managed or developed.
+      properties:
+        idProject:
+          type: integer
+          description: Unique identifier for the project.
+          example: 12
+        projectName:
+          type: string
+          description: The name of the project.
+          example: MyInpulse Mobile App
+        creationDate:
+          type: string
+          format: date
+          description: The date when the project was created in the system.
+          example: 'yyyy-MM-dd HH:mm'
+        logo:
+          type: string
+          format: byte
+          description: Base64 encoded string representing the project logo image.
+          example: /*Base64 encoded string representing the project logo image*/
+        status:
+          type: string
+          enum:
+            - PENDING
+            - ACTIVE
+            - ENDED
+            - ABORTED
+            - REJECTED
+          description: 'Corresponds to a status enum internal to the backend, it''s value in in requests incoming to the server should be ignored as the client shouldn''t be specifying them.'
+          example: NaN
+    report:
+      type: object
+      description: Represents a report associated with an appointment.
+      properties:
+        idReport:
+          type: integer
+          description: Unique identifier for the report.
+          example: 987
+        reportContent:
+          type: string
+          description: The textual content of the report. Could be plain text or Markdown (specify if known).
+          example: Discussed roadmap milestones for Q3. Agreed on preliminary UI mockups.
+    appointment:
+      type: object
+      description: Represents a scheduled meeting or appointment.
+      properties:
+        idAppointment:
+          type: integer
+          description: Unique identifier for the appointment.
+          example: 303
+        appointmentDate:
+          type: string
+          format: date
+          description: The date of the appointment.
+          example: '2025-05-10'
+        appointmentTime:
+          type: string
+          format: time
+          description: The time of the appointment (local time).
+          example: '14:30:00'
+        appointmentDuration:
+          type: string
+          description: 'Duration of the appointment in ISO 8601 duration format (e.g., PT1H30M for 1 hour 30 minutes).'
+          example: PT1H
+        appointmentPlace:
+          type: string
+          description: Location or meeting link for the appointment.
+          example: 'Meeting Room 3 / https://meet.example.com/abc-def-ghi'
+        appointmentSubject:
+          type: string
+          description: The main topic or subject of the appointment.
+          example: Q3 Roadmap Planning
+    joinRequest:
+      type: object
+      description: Represents a request from an entrepreneur to join an already existing project.
+      properties:
+        idProject:
+          type: integer
+          description: the ID of the project the entrepreneur wants to join.
+          example: 42
+        entrepreneur:
+          $ref: '#/components/schemas/user-entrepreneur'
+    projectDecision:
+      type: object
+      description: Represents a decision from an admin to accept a pending project.
+      properties:
+        projectId:
+          type: integer
+          description: The ID of the project the entrepreneur wants to join.
+          example: 12
+        adminId:
+          type: integer
+          description: The ID of the project the admin who will supervise the project in case of admission.
+          example: 2
+        isAccepted:
+          type: boolean
+          description: The boolean value of the decision.
+          example: 'true'
+    joinRequestDecision:
+      type: object
+      description: Represents a decision from an admin to accept a pending project join request.
+      properties:
+        isAccepted:
+          type: boolean
+          description: The boolean value of the decision.
+          example: 'true'
+  securitySchemes:
+    MyINPulse:
+      type: oauth2
+      description: OAuth2 authentication using Keycloak.
+      flows:
+        implicit:
+          authorizationUrl: '{keycloakBaseUrl}/realms/{keycloakRealm}/protocol/openid-connect/auth'
+          scopes:
+            MyINPulse-admin: Grants administrator access.
+            MyINPulse-entrepreneur: Grants standard entrepreneur user access.
+servers:
+  - url: '{serverProtocol}://{serverHost}:{serverPort}'
+    description: API Server
+    variables:
+      serverProtocol:
+        enum:
+          - http
+          - https
+        default: http
+      serverHost:
+        default: localhost
+      serverPort:
+        enum:
+          - '8081'
+        default: '8081'
+      keycloakBaseUrl:
+        default: 'http://localhost:7080'
+        description: Base URL for the Keycloak server.
+      keycloakRealm:
+        default: MyInpulseRealm
+        description: Keycloak realm name.
+paths:
+  /unauth/finalize:
+    post:
+      summary: Finalize account setup using authentication token
+      description: |-
+        Completes the user account creation/setup process in the MyInpulse system.
+        This endpoint requires the user to be authenticated via Keycloak (e.g., after initial login).
+        User details (name, email, etc.) are extracted from the authenticated user's token (e.g., Keycloak JWT).
+        No request body is needed. The account is marked as pending admin validation upon successful finalization.
+      tags:
+        - Unauth API
+      responses:
+        '200':
+          description: Created - Account finalized and pending admin validation. Returns the user profile.
+        '400':
+          description: Bad Request - Problem processing the token or user data derived from it.
+        '401':
+          description: Unauthorized - Valid authentication token required.
+  '/unauth/request-join/{projectId}':
+    post:
+      summary: Request to join an existing project
+      description: Submits a request for the authenticated user (keycloack authenticated) to join the project specified by projectId. Their role is then changed to entrepreneur in server and Keycloak. This requires approval from a project admin.
+      tags:
+        - Unauth API
+      parameters:
+        - in: path
+          name: projectId
+          required: true
+          schema:
+            type: integer
+          description: The ID of the project to request joining.
+          example: 15
+      responses:
+        '200':
+          description: Accepted - Join request submitted and pending approval.
+        '400':
+          description: Bad Request - Invalid project ID format
+        '401':
+          description: Unauthorized.
+        '409':
+          description: Already member/request pending.
+  /admin/pending-accounts:
+    get:
+      operationId: getPendingAccounts
+      summary: Get accounts awaiting validation
+      description: Retrieves a list of entrepreneur user accounts that are pending admin validation.
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      responses:
+        '200':
+          description: OK - List of pending accounts returned.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/user-entrepreneur'
+        '401':
+          description: Unauthorized.
+  '/admin/accounts/validate/{userId}':
+    post:
+      operationId: validateUserAccount
+      summary: Validate a pending user account
+      description: Marks the user account specified by userId as validated/active.
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      parameters:
+        - in: path
+          name: userId
+          required: true
+          schema:
+            type: integer
+          description: The ID of the user account to validate.
+          example: 102
+      responses:
+        '200':
+          description: No Content - Account validated successfully.
+        '400':
+          description: Bad Request - Invalid user ID format.
+        '401':
+          description: Unauthorized.
+  /admin/request-join:
+    get:
+      operationId: getPendingProjects
+      summary: Get entrepreneurs project join requests
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      description: Retrieves a list of pending requests from entrepreneurs to join an existing project.
+      responses:
+        '200':
+          description: OK - List of pending project join requests.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/joinRequest'
+        '401':
+          description: Unauthorized.
+  '/admin/request-join/decision/{joinRequestId}':
+    post:
+      summary: Approve or reject a pending project join request
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      parameters:
+        - in: path
+          name: joinRequestId
+          required: true
+          schema:
+            type: integer
+          description: The ID of the pending join request to decide upon.
+      description: |-
+        Allows an admin to make a decision on an ebtrepreneur's request to join an existing project awaiting validation.
+        If approved (isAccepted=true), the entrepreneur is linked to the project with ID joinRequestId.
+        If rejected (isAccepted=false), the pending request data might be archived or deleted based on business logic.
+      responses:
+        '200':
+          description: 'OK - No Content, decision processed successfully..'
+          content:
+            application/json:
+              $ref: '#/components/schemas/joinRequestDecision'
+        '400':
+          description: 'Bad Request - Invalid input (e.g., missing decision).'
+        '401':
+          description: Unauthorized.
+  /admin/projects:
+    get:
+      operationId: getAdminProjects
+      summary: Get projects associated with the admin
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      description: 'Retrieves a list of projects managed by the requesting admin, including details for overview.'
+      responses:
+        '200':
+          description: OK - List of projects returned successfully.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/project'
+        '400':
+          description: 'Bad Request - Invalid project data provided (e.g., missing required fields).'
+        '401':
+          description: Unauthorized - Authentication required or invalid token.
+    post:
+      operationId: addProjectManually
+      summary: Manually add a new project
+      description: 'Creates a new project with the provided details. (NOTE that this meant for manually inserting projects, for example importing already existing projects).'
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      requestBody:
+        required: true
+        description: Project details to create. `idProject` and `creationDate` will be ignored if sent and set by the server.
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/project'
+      responses:
+        '200':
+          description: Created - Project added successfully. Returns the created project.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/project'
+        '401':
+          description: Unauthorized.
+        '409':
+          description: Bad Request - Project already exists.
+  /admin/projects/pending:
+    get:
+      operationId: getPendingProjects
+      summary: Get projects awaiting validation
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      description: Retrieves a list of projects submitted by entrepreneurs that are pending admin approval.
+      responses:
+        '200':
+          description: OK - List of pending projects returned.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/project'
+        '401':
+          description: Unauthorized.
+  /admin/projects/pending/decision:
+    post:
+      operationId: decidePendingProject
+      summary: Approve or reject a pending project
+      tags:
+        - Admin API
+      description: |-
+        Allows an admin to make a decision on a project awaiting validation.
+        If approved (isAccepted=true), the project status changes, and it's linked to the involved users.
+        If rejected (isAccepted=false), the pending project data might be archived or deleted based on business logic.
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      requestBody:
+        required: true
+        description: Decision payload.
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/projectDecision'
+      responses:
+        '200':
+          description: No Content - Decision processed successfully.
+        '400':
+          description: 'Bad Request - Invalid input (e.g., missing decision).'
+        '401':
+          description: Unauthorized.
+  '/admin/appointments/report/{appointmentId}':
+    post:
+      operationId: createAppointmentReport
+      summary: Create a report for an appointment
+      description: 'Creates and links a new report (e.g., meeting minutes) to the specified appointment using the provided content.'
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      parameters:
+        - in: path
+          name: appointmentId
+          required: true
+          schema:
+            type: integer
+          description: ID of the appointment to add a report to.
+          example: 303
+      requestBody:
+        required: true
+        description: Report content. `idReport` will be ignored if sent.
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/report'
+      responses:
+        '200':
+          description: Created - Report created and linked successfully. Returns the created report.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/report'
+        '400':
+          description: 'Bad Request - Invalid input (e.g., missing content, invalid appointment ID format).'
+        '401':
+          description: Unauthorized.
+    put:
+      operationId: updateAppointmentReport
+      summary: Update an existing appointment report
+      description: Updates the content of an existing report linked to the specified appointment. Replaces the entire report content.
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      parameters:
+        - in: path
+          name: appointmentId
+          required: true
+          schema:
+            type: integer
+          description: ID of the appointment whose report needs updating.
+          example: 303
+      requestBody:
+        required: true
+        description: New report content. `idReport` in the body should match the existing report's ID or will be ignored.
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/report'
+      responses:
+        '200':
+          description: OK - Report updated successfully. Returns the updated report.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/report'
+        '400':
+          description: 'Bad Request - Invalid input (e.g., missing content).'
+        '401':
+          description: Unauthorized.
+  /admin/appointments/upcoming:
+    get:
+      operationId: getUpcomingAppointments
+      summary: Get upcoming appointments for an admin
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      description: Retrieves a list of appointments scheduled for an admin in the future.
+      responses:
+        '200':
+          description: OK - List of upcoming appointments.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/appointment'
+        '401':
+          description: Unauthorized.
+        '404':
+          description: no appointments found.
+  '/admin/projects/{projectId}':
+    delete:
+      operationId: removeProject
+      summary: Remove a project
+      description: Permanently removes the project specified by projectId and potentially related data (use with caution).
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      parameters:
+        - in: path
+          name: projectId
+          required: true
+          schema:
+            type: integer
+          description: The ID of the project to remove.
+          example: 12
+      responses:
+        '200':
+          description: No Content - Project removed successfully.
+        '400':
+          description: Bad Request - Invalid project ID format.
+        '401':
+          description: Unauthorized.
+  '/admin/make-admin/{userId}':
+    post:
+      operationId: grantAdminRights
+      summary: Grant admin rights to a user
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      description: Elevates the specified user to also have administrator privileges. Assumes the user already exists.
+      parameters:
+        - in: path
+          name: userId
+          required: true
+          schema:
+            type: integer
+          description: The ID of the user to grant admin rights.
+          example: 103
+      responses:
+        '200':
+          description: No Content - Admin rights granted successfully.
+        '400':
+          description: Bad Request - Invalid user ID format or user is already an admin.
+        '401':
+          description: Unauthorized.
+  /admin/create-account:
+    post:
+      summary: Creates Admin out Jwt Token
+      tags:
+        - Admin API
+      security:
+        - MyINPulse:
+            - MyINPulse-admin
+      description: 'Create an admin instance in the MyINPulse DB of the information provided from the authenticated user''s keycloack token. The information required in the token are `userSurname`, `username`, `primaryMail`, `secondaryMail`, `phoneNumber`.'
+      responses:
+        '200':
+          description: No Content - Admin user created successfully.
+        '401':
+          description: Unauthorized.
+  '/shared/projects/sectionCells/{projectId}/{sectionId}/{date}':
+    get:
+      operationId: getSectionCellsByDate
+      summary: Get project section cells modified on a specific date
+      tags:
+        - Shared API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+            - MyINPulse-admin
+      description: 'Retrieves section cells belonging to a specific section of a project, filtered by the last modification date. Requires user to have access to the project.'
+      parameters:
+        - in: path
+          name: projectId
+          required: true
+          schema:
+            type: integer
+          description: ID of the project.
+        - in: path
+          name: sectionId
+          required: true
+          schema:
+            type: integer
+          description: ID of the Lean Canvas section.
+        - in: path
+          name: date
+          required: true
+          schema:
+            type: string
+            format: date
+          description: 'The modification date to filter by (YYYY-MM-DD HH:mm).'
+      responses:
+        '200':
+          description: OK - List of section cells matching the criteria.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/sectionCell'
+        '400':
+          description: Bad Request - Invalid parameter format.
+        '401':
+          description: Unauthorized.
+  '/shared/projects/entrepreneurs/{projectId}':
+    get:
+      operationId: getProjectEntrepreneurs
+      summary: Get entrepreneurs associated with a project
+      tags:
+        - Shared API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+            - MyINPulse-admin
+      description: Retrieves a list of entrepreneur users associated with the specified project. Requires access to the project.
+      parameters:
+        - in: path
+          name: projectId
+          required: true
+          schema:
+            type: integer
+          description: ID of the project.
+      responses:
+        '200':
+          description: OK - List of entrepreneurs.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/user-entrepreneur'
+        '401':
+          description: Unauthorized.
+        '403':
+          description: Forbidden - User does not have access to this project.
+        '404':
+          description: Not Found - Project not found.
+  '/shared/projects/admin/{projectId}':
+    get:
+      operationId: getProjectAdmin
+      summary: Get admin associated with a project
+      tags:
+        - Shared API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+            - MyINPulse-admin
+      description: Retrieves a list of admin users associated with the specified project. Requires access to the project.
+      parameters:
+        - in: path
+          name: projectId
+          required: true
+          schema:
+            type: integer
+          description: ID of the project.
+      responses:
+        '200':
+          description: OK - admin.
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/user-admin'
+        '401':
+          description: Unauthorized.
+        '403':
+          description: Forbidden - User does not have access to this project.
+        '404':
+          description: Not Found - Project not found.
+  '/shared/projects/appointments/{projectId}':
+    get:
+      operationId: getProjectAppointments
+      summary: Get appointments related to a project
+      tags:
+        - Shared API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+            - MyINPulse-admin
+      description: Retrieves a list of appointments associated with the specified project. Requires access to the project.
+      parameters:
+        - in: path
+          name: projectId
+          required: true
+          schema:
+            type: integer
+          description: ID of the project.
+      responses:
+        '200':
+          description: OK - List of appointments.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/appointment'
+        '401':
+          description: Unauthorized.
+  '/shared/appointments/report/{appointmentId}':
+    get:
+      operationId: getAppointmentReport
+      summary: Get the report for an appointment
+      tags:
+        - Shared API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+            - MyINPulse-admin
+      description: Retrieves the report associated with a specific appointment. Requires user to have access to the appointment/project.
+      parameters:
+        - in: path
+          name: appointmentId
+          required: true
+          schema:
+            type: integer
+          description: ID of the appointment.
+      responses:
+        '200':
+          description: OK - Report PDF returned.
+          content:
+            application/pdf:
+              schema:
+                schema: null
+                type: string
+                format: binary
+        '401':
+          description: Unauthorized.
+  /shared/appointments/request:
+    post:
+      operationId: requestAppointment
+      summary: Request a new appointment
+      tags:
+        - Shared API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+            - MyINPulse-admin
+      description: 'Allows a user (entrepreneur or admin) to request a new appointment, potentially with another user or regarding a project. Details in the body. The request might need confirmation or create a pending appointment.'
+      requestBody:
+        required: true
+        description: Details of the appointment request.
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/appointment'
+      responses:
+        '200':
+          description: Accepted - Appointment request submitted.
+        '400':
+          description: Bad Request - Invalid appointment details.
+        '401':
+          description: Unauthorized.
+  /entrepreneur/projects:
+    get:
+      summary: gets the projectId of the project associated with the entrepreneur
+      description: returns a list of projectIds of the projects associated with the entrepreneur
+      tags:
+        - Entrepreneurs API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+      parameters: null
+      responses:
+        '200':
+          description: OK - Section cell updated successfully. Returns the updated cell.
+          content:
+            application/json:
+              schema:
+                type: array
+                items:
+                  $ref: '#/components/schemas/project'
+        '401':
+          description: Unauthorized or identity not found
+        '404':
+          description: Bad Request - Invalid input or ID mismatch.
+  /entrepreneur/projects/request:
+    post:
+      operationId: requestProjectCreation
+      summary: Request creation and validation of a new project
+      tags:
+        - Entrepreneurs API
+      description: |-
+        Submits a request for a new project. The project details are provided in the request body.
+        The requesting entrepreneur (identified by the token) will be associated to it.
+        The project is created with a 'pending' status, awaiting admin approval.
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+      requestBody:
+        required: true
+        description: 'Project details for the request. `status`, `creationDate` are required by the model when being sent but is ignored by the server; primarily expects a valid `projectId`, `name`, `logo`.'
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/project'
+      responses:
+        '200':
+          description: Accepted - Project creation request received and is pending validation.
+        '400':
+          description: 'Bad Request - Invalid input (e.g., missing name).'
+        '401':
+          description: Unauthorized.
+  /entrepreneur/sectionCells:
+    post:
+      operationId: addSectionCell
+      summary: Add a cell to a Lean Canvas section
+      description: Adds a new cell (like a sticky note) with the provided content to a specific section of the entrepreneur's project's Lean Canvas. Assumes project context is known based on user's token. `idSectionCell` and `modificationDate` are server-generated so they're values in the request are ignored by the server.
+      tags:
+        - Entrepreneurs API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+      requestBody:
+        required: true
+        description: Section cell details. `idSectionCell` and `modificationDate` will be ignored if sent.
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/sectionCell'
+      responses:
+        '200':
+          description: Created - Section cell added successfully. Returns the created cell.
+        '400':
+          description: 'Bad Request - Invalid input (e.g., missing content or sectionId).'
+        '401':
+          description: Unauthorized.
+  '/entrepreneur/sectionCells/{sectionCellId}':
+    put:
+      operationId: modifySectionCell
+      summary: Modify data in a Lean Canvas section cell
+      description: Updates the content of an existing Lean Canvas section cell specified by `sectionCellId`. The server "updates" (it keeps a record of the previous version to keep a history of all the sectionCells and creates a new ones with the specified modifications) the `modificationDate`.
+      tags:
+        - Entrepreneurs API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+      parameters:
+        - in: path
+          name: sectionCellId
+          required: true
+          schema:
+            type: integer
+          description: The ID of the section cell to modify.
+          example: 508
+      requestBody:
+        required: true
+        description: Updated section cell details. `sectionCellId` "the path parameter" is the only id that's consideredn the `sectionCellId` id in the request body is ignored. `modificationDate` should be updated by the server.
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/sectionCell'
+      responses:
+        '200':
+          description: OK - Section cell updated successfully. Returns the updated cell.
+        '401':
+          description: Unauthorized.
+        '404':
+          description: Bad Request - Invalid input or ID mismatch.
+    delete:
+      operationId: removeSectionCell
+      summary: Remove a Lean Canvas section cell
+      description: Deletes the Lean Canvas section cell specified by `sectionCellId`.
+      tags:
+        - Entrepreneurs API
+      security:
+        - MyINPulse:
+            - MyINPulse-entrepreneur
+      parameters:
+        - in: path
+          name: sectionCellId
+          required: true
+          schema:
+            type: integer
+          description: The ID of the section cell to remove.
+          example: 509
+      responses:
+        '200':
+          description: No Content - Section cell removed successfully.
+        '400':
+          description: Bad Request - Invalid ID format.
+        '401':
+          description: Unauthorized.
+        '404':
+          description: Bad Request - sectionCell not found.
diff --git a/documentation/openapi/src/entrepreneurApi.yaml b/documentation/openapi/src/entrepreneurApi.yaml
index 6dd4a46..15ddc1f 100644
--- a/documentation/openapi/src/entrepreneurApi.yaml
+++ b/documentation/openapi/src/entrepreneurApi.yaml
@@ -21,7 +21,7 @@ paths:
             schema:
               $ref: "./main.yaml#/components/schemas/project"
       responses:
-        "202":
+        "200":
           description: Accepted - Project creation request received and is pending validation.
         "400":
           description: Bad Request - Invalid input (e.g., missing name).
@@ -46,7 +46,7 @@ paths:
             schema:
               $ref: "./main.yaml#/components/schemas/sectionCell"
       responses:
-        "201":
+        "200":
           description: Created - Section cell added successfully. Returns the created cell.
         "400":
           description: Bad Request - Invalid input (e.g., missing content or sectionId).
@@ -102,7 +102,7 @@ paths:
           description: The ID of the section cell to remove.
           example: 509
       responses:
-        "204":
+        "200":
           description: No Content - Section cell removed successfully.
         "400":
           description: Bad Request - Invalid ID format.
diff --git a/documentation/openapi/src/main.yaml b/documentation/openapi/src/main.yaml
index 6cf5cb6..6239610 100644
--- a/documentation/openapi/src/main.yaml
+++ b/documentation/openapi/src/main.yaml
@@ -108,6 +108,8 @@ paths:
     $ref: "./adminApi.yaml#/paths/~1admin~1projects~1{projectId}" 
   /admin/make-admin/{userId}:
     $ref: "./adminApi.yaml#/paths/~1admin~1make-admin~1{userId}"
+  /admin/create-account:
+    $ref: "./adminApi.yaml#/paths/~1admin~1create-account"
 
   #       ____  _                        _      _    ____ ___
   #      / ___|| |__   __ _ _ __ ___  __| |    / \  |  _ \_ _|
diff --git a/documentation/openapi/src/sharedApi.yaml b/documentation/openapi/src/sharedApi.yaml
index e7d31d3..15fa7bc 100644
--- a/documentation/openapi/src/sharedApi.yaml
+++ b/documentation/openapi/src/sharedApi.yaml
@@ -176,7 +176,7 @@ paths:
               $ref: "./main.yaml#/components/schemas/appointment" # Assuming request uses same model structure
                 # Potentially add projectId or targetUserId here
       responses:
-        "202": # Accepted seems appropriate for a request
+        "200": # Accepted seems appropriate for a request
           description: Accepted - Appointment request submitted.
         "400":
           description: Bad Request - Invalid appointment details.
diff --git a/documentation/openapi/src/unauthApi.yaml b/documentation/openapi/src/unauthApi.yaml
index ad4709e..7c5545b 100644
--- a/documentation/openapi/src/unauthApi.yaml
+++ b/documentation/openapi/src/unauthApi.yaml
@@ -18,7 +18,7 @@ paths:
       tags:
         - Unauth API
       responses:
-        "201":
+        "200":
           description: Created - Account finalized and pending admin validation. Returns the user profile.
         "400":
           description: Bad Request - Problem processing the token or user data derived from it.
@@ -39,7 +39,7 @@ paths:
           description: The ID of the project to request joining.
           example: 15
       responses: # Moved responses block to correct level
-        "202":
+        "200":
           description: Accepted - Join request submitted and pending approval.
         "400":
           description: Bad Request - Invalid project ID format 
@@ -54,7 +54,7 @@ paths:
       tags:
        - Unauth API
       responses:
-        "202":
+        "200":
           description: Accepted - Become admin request submitted and pending approval.
         "400":
           description: Bad Request - Invalid project ID format or already member/request pending.