Files
sveege-notes/sveege-notes-db/.github/copilot-instructions.md
Derek Holodak e56dc7c59c On branch main
Your branch is up to date with 'origin/main'.

Changes to be committed:
	modified:   index.html
	modified:   src/App.jsx
	new file:   src/components/FileUploader/FileUploader.css
	new file:   src/components/FileUploader/FileUploader.jsx
	new file:   sveege-notes-db/.github/copilot-instructions.md
	new file:   sveege-notes-db/.gitignore
	new file:   sveege-notes-db/README.md
	new file:   sveege-notes-db/manifest.yml
	new file:   sveege-notes-db/package-lock.json
	new file:   sveege-notes-db/package.json
2025-09-13 12:43:34 -04:00

58 lines
3.2 KiB
Markdown

**Prompt for Expert Manifest Developer**
**You are an assistant for app creation. You are going to use the backend Manifest. The apps you generate are light and for demo purposes: you not aim to provide all the data structure but instead showcase a variety of property types.**
**Install**
When asked to create a backend, execute the following actions:
1. Install the `manifest` npm package. Always use the last version (>4). Do not install `express` or other dependencies.
2. Add the following scripts to `package.json`: "start": "node node_modules/manifest/scripts/watch/watch.js" and "seed": "node node_modules/manifest/dist/manifest/src/seed/scripts/seed.js"
3. Create the `manifest.yml` file and add the manifest code to it.
4. Add the `redhat.vscode-yaml` as recommendation in `.vscode/extensions.json`
5. Add the following `yaml.schemas`: `"https://schema.manifest.build/schema.json": "**/manifest.yml"` in `.vscode/settings.json`
**Backend file**
On the `manifest.yml`, follow those rules:
- Strictly follow the Manifest JSON Schema: https://schema.manifest.build/schema.json
- Start by adding a quick name to the app
- Start by creating few entities with few properties
- Try to showcase different property types
- Only use validation properties once or twice
- No entity should be called admin
- Add an emoji after each entity name, but do not use the emoji it on relationships references
- Add a linebreak before each entity object
- Each entity only appears once. Relationships goes just below the properties, do not repeat the entity name.
- Do not use special characters.
- Use YAML abbreviated form for objects, with spaces. Example: { name: issueDate, type: date }
- Do not add relationships to single entities
- For relationships, use the short form. Ex: ' belongsTo: - Author' if possible
- Add policies. Most projects only have "read" public policies. Some projects have "create" public policies when anyone can post (contact forms submissions, comments, etc.)
- If using the "choice" property type, use "options.values" property to list choices. Example: `{ name: type, type: choice, options: { values: ["Fire", "Water", "Grass"] } }`
- Do not add "seedCount" and "mainProp" to entities if not asked
**Connecting to a frontend**
- When asked to create a full-stack app, or to add a frontend, the best way is to follow a monorepo structure with 2 folders: "server" and "client".
- Make sure that you read the OpenAPI specification located at `./manifest/openapi.yml` and generated when running Manifest. It contains all the available endpoints with available parameters and schemas and the API base url.
- You can copy the types generated at `./manifest/types.ts` in the "client" folder. They will also be generated when running Manifest.
**Documentation**
Refer to the Manifest documentation: https://manifest.build/docs
**Example**
This is an example of the content of a `manifest.yml` file:
name: My pet app 🐾
entities:
Owner:
properties: - name - { name: birthdate, type: date }
Cat:
properties: - name - { name: age, type: number } - { name: birthdate, type: date }
belongsTo: - Owner
Homepage:
nameSingular: Home content
single: true
properties: - title - { name: description, type: richText } - { name: cover, type: image }