# Start here: your coding agent + Dataverse career brief

This folder is a simple study workspace. It is inspired by Kristoffer's `work/` folder, but made much smaller and easier to use.

Your coding agent is the **Codex app** — a desktop application from OpenAI that works well on Windows. You open this folder in it and talk to the agent in plain language. It can read your files, explain them, make plans, help with code and review your work. (Section 2 shows how to install it.)

Once it is installed, open the Codex app, open this `study` folder as a project, start a new thread and type:

```text
Read START_HERE_DATAVERSE.md and explain it to me in simple Italian. Then quiz me.
```

---

## 1. Suggested folder structure

Create one main folder for study, projects and notes:

```text
study/
├── README.md
├── inbox/
├── school/
├── projects/
├── notes/
├── resources/
└── archive/
```

### What each folder is for

| Folder | Use it for |
|---|---|
| `inbox/` | Temporary things that need sorting later. Downloads, screenshots, quick notes. |
| `school/` | University courses, assignments, exam notes, group work. |
| `projects/` | Things you build yourself. Example: a Dataverse proof project. |
| `notes/` | Your own explanations of concepts you want to remember. |
| `resources/` | PDFs, links, official docs, useful examples. |
| `archive/` | Finished courses, old projects, completed drafts. |

This is close to what many people do with the PARA method: active projects, ongoing areas, reference resources and archives. The important thing is not the exact names. The important thing is that every file has a clear home.

### Create the folders on Windows

Open PowerShell or Windows Terminal and run:

```powershell
New-Item -ItemType Directory -Force -Path "$HOME/study/inbox", "$HOME/study/school", "$HOME/study/projects", "$HOME/study/notes", "$HOME/study/resources", "$HOME/study/archive"
Set-Location "$HOME/study"
```

---

## 2. Install and start the Codex app on Windows

The Codex app is a desktop application ("command center for agents"). You open a project folder, then run agent threads in a visual window — no terminal multiplexing to learn first. It runs natively on Windows in PowerShell with a built-in sandbox.

### Step 1 — Install the supporting tools first

The Codex app works best when these are already installed. Install whichever you do not have yet:

1. **Git for Windows** from <https://git-scm.com/download/win>
2. **Node.js LTS** from <https://nodejs.org/>
3. **Python** from <https://www.python.org/downloads/windows/>
4. **.NET SDK** from <https://dotnet.microsoft.com/download>
5. **GitHub CLI** from <https://cli.github.com/>

### Step 2 — Install the Codex app

Get it from the Microsoft Store, or open PowerShell / Windows Terminal and run:

```powershell
winget install Codex -s msstore
```

### Step 3 — Sign in

Open the Codex app. The first time, sign in with your **ChatGPT account**. A ChatGPT Plus (or Pro/Edu) plan includes Codex, so you do not need a separate API key or billing setup.

### Step 4 — Open your study folder

In the Codex app, open the `study` folder (the one from section 1) as a project. Start a new thread to begin talking to the agent. By default the agent runs Windows-natively in PowerShell with a sandbox; you can keep the default permissions while learning.

> Later, if you decide you prefer the terminal, the same agent also exists as a command-line tool (the Codex CLI) and can run inside WSL2. You do not need that to start — the app is enough.

---

## 3. What the career brief says, in facts

The public career brief is about preparing a spontaneous application for Context& / Projectum xPM.

The main idea:

> Do not only show that you can write code. Show that you understand the business problem, the Microsoft platform and how to build a small Dataverse-first solution.

### Context& / xPM

Facts from public material:

- Context& works in the Microsoft ecosystem.
- Relevant areas include AI, Dynamics 365, Power Platform, Azure, Microsoft 365 and project/portfolio management.
- Projectum xPM is positioned as a platform for portfolio management and strategy execution.
- xPM is built around Microsoft Power Platform and integrates with Microsoft tools such as Teams, Power BI, Azure DevOps and others.
- The important business theme is connecting work, projects, resources, risks and decisions to strategic goals.

### Why this matters for a junior candidate

- Many junior candidates can show normal coding exercises.
- AI tools can now generate simple code quickly.
- A stronger signal is showing judgement: what to build, why it matters and which platform component should be used.
- For a Microsoft partner, Dataverse and Power Platform knowledge is more relevant than a generic CRUD app.
- A small, well-documented proof project can say more than a normal CV paragraph.

---

## 4. Technical concepts to learn

Keep the Microsoft product terms in English. It is normal to say Power Platform, Dataverse, Power Automate, model-driven app, Canvas app, security roles, solutions, ALM, tenant and environment.

| Concept | Simple explanation |
|---|---|
| Power Platform | Microsoft's low-code/business application platform. Includes Power Apps, Power Automate, Power BI and Dataverse. |
| Dataverse | Managed business data platform. Stores tables, relationships, security, metadata and business data. |
| Power Apps | Tool for building business apps. Main types: Canvas apps and model-driven apps. |
| model-driven app | App generated from the Dataverse data model, forms, views and navigation. Good for structured business data. |
| Canvas app | More flexible visual app where you design the screen layout yourself. |
| Power Automate | Workflow/automation tool. Used for approvals, notifications, scheduled processes and integrations. |
| Power BI | Reporting and analytics tool. Useful for dashboards and portfolio insights. |
| Microsoft Entra ID | Identity platform used for users, login, SSO and app registrations. |
| security roles | Dataverse access model: who can read, create, write, delete, share or append records. |
| business units / teams / ownership | Dataverse concepts for organizing users and controlling access to records. |
| solutions | Containers for Power Platform components. Used for packaging, deployment and ALM. |
| ALM | Application Lifecycle Management: how you move from development to test to production in a controlled way. |
| environment | A Power Platform workspace, usually dev/test/prod. Contains apps, flows, Dataverse data and settings. |
| tenant | The Microsoft 365 / Entra organization boundary. |
| connection references | Power Platform references to external connections used by apps and flows. |
| environment variables | Config values that can change between dev/test/prod without changing the app itself. |
| Power Platform CLI / pac | Command-line tool for exporting, unpacking and managing Power Platform solutions. |

---

## 5. The Dataverse-first mindset

A beginner developer often wants to build everything from scratch.

The better Microsoft platform mindset is:

| Instead of... | Learn/use... |
|---|---|
| Custom login system | Microsoft Entra ID, SSO, MSAL patterns |
| Generic backend CRUD API | Dataverse + OData Web API / SDK |
| Custom permission model | Dataverse security roles, ownership, teams, business units |
| Manual deployment | Power Platform solutions and ALM |
| Dashboard from scratch | Power BI with Dataverse |
| All automation in custom code | Power Automate, Teams, Azure Functions only when needed |

The goal is not to avoid code. The goal is to know when the platform already gives you the correct primitive.

---

## 6. Proposed proof project

Build a small Dataverse-first project called:

> Portfolio Review Room

Purpose:

A small model-driven app that helps a portfolio manager review initiatives, risks, resources, decisions and OKRs before a steering committee meeting.

It should not copy xPM. It should only show that you understand the category and the Microsoft platform underneath it.

### Suggested Dataverse tables

- Initiative
- Objective / OKR
- Risk
- Resource
- Decision
- Status Update
- Portfolio Review

### Suggested app surfaces

- model-driven app forms and views
- Power BI summary report or simple dashboard
- Power Automate digest or approval-style flow
- Teams-ready summary or screenshot

### Suggested roles

- Portfolio viewer
- Project manager
- PMO editor
- Executive reader
- Admin / maker

### Deliverables

Put these in the project folder:

```text
projects/dataverse-portfolio-review-room/
├── README.md
├── docs/
│   ├── schema-diagram.md
│   ├── security-role-matrix.md
│   ├── assumptions-and-limits.md
│   └── screenshots/
└── src/
    └── unpacked-solution/
```

The README should explain business value first, technical details second.

---

## 7. 30-day learning plan

This plan assumes limited time because of university exams.

### Days 1-3: Understand the business

- Read Context& public pages.
- Read Projectum xPM public pages.
- Write one page: "What I think this business does."
- Ask the agent to challenge your explanation.

### Days 4-8: Set up Power Platform

- Get access to Power Apps Developer Plan if possible.
- If school Microsoft account does not work, create your own Microsoft 365 / Entra tenant.
- Create a development environment.
- Create the first Dataverse tables.
- Take screenshots from the beginning.

### Days 9-15: Build the model-driven app

- Create forms and views.
- Add navigation.
- Keep the app simple.
- Focus on clarity, not visual design.

### Days 16-20: Add security and automation

- Create a security role matrix.
- Explain why each role exists.
- Add a small Power Automate flow, for example a weekly review digest.

### Days 21-25: Add reporting

- Create a Power BI report or a simple dashboard/view.
- Focus on useful portfolio questions:
  - Which initiatives are high risk?
  - Which resources are overloaded?
  - Which decisions are blocked?
  - Which budget items need attention?

### Days 26-30: Package the proof

- Finish README.md.
- Add screenshots.
- Add assumptions and known limits.
- Add links to Microsoft Learn.
- Prepare a short spontaneous application message.

---

## 8. How to use the agent while learning

The agent should not replace understanding. Use it as a tutor, reviewer and project assistant.

Good prompts:

```text
Explain this file to me in simple Italian. Keep Microsoft product names in English.
```

```text
Quiz me on the most important concepts from this file. Ask one question at a time.
```

```text
Help me turn this proof project into a 30-day checklist. Keep it realistic for a student with exams.
```

```text
Review my README. Does it show business understanding before technical details?
```

```text
Make a security role matrix for these Dataverse tables: Initiative, Risk, Resource, Decision, Status Update.
```

```text
I do not understand Dataverse security roles. Explain them with a simple example.
```

Rules when using the agent:

- Ask it to explain, not only to generate.
- Ask it to quiz you.
- Ask it to list assumptions.
- Ask it to verify technical claims against official Microsoft Learn docs.
- Do not paste secrets, passwords, tokens or private keys.
- Keep important outputs in Markdown files inside `notes/` or the project folder.

---

## 9. First Codex session on Windows

After installing the Codex app, make sure this file is saved inside your study folder:

```text
C:\Users\<your-name>\study\START_HERE_DATAVERSE.md
```

Then, in the Codex app:

1. Open the `study` folder as a project.
2. Start a new thread.
3. Type a first message that points the agent at this file, for example:

```text
Read START_HERE_DATAVERSE.md in this folder. Explain it to me in simple Italian,
keep Microsoft product names in English, then quiz me one question at a time.
```

---

## 10. The main lesson

The goal is not to become an expert in 30 days.

The goal is to show a strong learning signal:

- I researched the company and product category.
- I understood why Dataverse matters.
- I built a small proof project in the right platform style.
- I documented assumptions, limits and screenshots.
- I can explain my choices clearly.

That is much stronger than only saying: "I am motivated and I can code."
