<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Projects - wizzdi</title>
	<atom:link href="https://wizzdi.com/docs-category/projects/feed/" rel="self" type="application/rss+xml" />
	<link>https://wizzdi.com</link>
	<description>Wizzdi No Code</description>
	<lastBuildDate>Sat, 24 Aug 2024 15:57:27 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>

<image>
	<url>https://wizzdi.com/wp-content/uploads/2024/07/cropped-favicon-32x32.png</url>
	<title>Projects - wizzdi</title>
	<link>https://wizzdi.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Quickstart</title>
		<link>https://wizzdi.com/docs/projects/quickstart/</link>
					<comments>https://wizzdi.com/docs/projects/quickstart/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 14 Apr 2024 10:45:00 +0000</pubDate>
				<guid isPermaLink="false">https://wizzdi.com/?post_type=docs&#038;p=1467</guid>

					<description><![CDATA[<p>Introduction this Section&#8217;s purpose is to take you through the process of building a simple App in Wizzdi Cloud. the example is available on wizzdi cloud public marketplace Register Before Using Wizzdi Cloud You must register. Email/Password Registration press the Sign Up highlighted text input the details above Press the Sign Up button Single Sign [&#8230;]</p>
<p>The post <a href="https://wizzdi.com/docs/projects/quickstart/">Quickstart</a> first appeared on <a href="https://wizzdi.com">wizzdi</a>.</p>]]></description>
										<content:encoded><![CDATA[<h1>Introduction</h1>
<p>this Section&#8217;s purpose is to take you through the process of building a simple App in Wizzdi Cloud.</p>
<p>the example is <a href="https://cloud.wizzdi.com/main/app-details?appId=28411a2e-60aa-407e-8c2d-a741c2f0f887&amp;overViewType=projectGroup&amp;entryId=0ed2181c-db5d-40e9-8f61-aa0b641f4fab&amp;marketplace=public">available</a> on wizzdi cloud public marketplace</p>
<h1>Register</h1>
<p>Before Using Wizzdi Cloud You must register.</p>
<figure id="attachment_1507" aria-describedby="caption-attachment-1507" style="width: 800px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-1507 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/register-1024x504.png" alt="Login Screen" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/04/register-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/register-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/register-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/register-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/register.png 1919w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1507" class="wp-caption-text">Login Screen</figcaption></figure>
<h2>Email/Password Registration</h2>
<figure id="attachment_1508" aria-describedby="caption-attachment-1508" style="width: 800px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-1508 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/sign-in-1024x504.png" alt="Register Screen" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/04/sign-in-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/sign-in-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/sign-in-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/sign-in-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/sign-in.png 1917w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1508" class="wp-caption-text">Register Screen</figcaption></figure>
<ol>
<li>press the <em>Sign Up </em>highlighted text</li>
<li>input the details above</li>
<li>Press the <em>Sign Up</em> button</li>
</ol>
<h2>Single Sign On Register/Login</h2>
<p>press the Google Icon or the GitHub Icon , to SSO with Google/GitHub.</p>
<h1>Create App</h1>
<figure id="attachment_1509" aria-describedby="caption-attachment-1509" style="width: 800px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-1509 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/New-App-1024x506.png" alt="My Apps Screen" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/New-App-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/New-App-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/New-App-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/New-App-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/New-App.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1509" class="wp-caption-text">My Apps Screen</figcaption></figure>
<p>press the <em>New App</em> button on the bottom right of the screen.</p>
<figure id="attachment_1510" aria-describedby="caption-attachment-1510" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1510 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/create-app-dialog-1024x505.png" alt="Create New App Dialog" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/create-app-dialog-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/create-app-dialog-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/create-app-dialog-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/create-app-dialog-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/create-app-dialog.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1510" class="wp-caption-text">Create New App Dialog</figcaption></figure>
<p>insert your App&#8217;s name.</p>
<h1>App Overview</h1>
<figure id="attachment_1513" aria-describedby="caption-attachment-1513" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1513 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1024x504.png" alt="Empty App Overview" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1513" class="wp-caption-text">Empty App Overview</figcaption></figure>
<h1>Domain Model</h1>
<p>in this part we will create a simple <strong>Person</strong> Entity with the fields: <strong>id,address,birthDate</strong>.</p>
<p>the Domain Model Editor is a powerful tool that allows creating connection between entities ,setting indexes , creating inheritance relshionship and much more.</p>
<p>for a more extensive view of the Domain Model Editor check its <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-20">documentation</a>.</p>
<figure id="attachment_1514" aria-describedby="caption-attachment-1514" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1514 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/domain-model-1024x505.png" alt="Empty Domain Model Editor" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/domain-model-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1514" class="wp-caption-text">Empty Domain Model Editor</figcaption></figure>
<h2>Create The &#8216;Person&#8217; Entity</h2>
<ol>
<li>on the right side menu select the <em>New&#8230;</em> button and select <em>New Entity</em></li>
<li>a new rectangle will show on the editor , enter the Entity name &#8211; &#8216;Person&#8217; and press <em>OK</em></li>
</ol>
<h3>Add The &#8216;id&#8217; Field</h3>
<figure id="attachment_1515" aria-describedby="caption-attachment-1515" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1515 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/domain-model-person-1024x506.png" alt="Domain Model Editor After Creating Person Entity" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/domain-model-person-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-person-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-person-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-person-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-person.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1515" class="wp-caption-text">Domain Model Editor After Creating Person Entity</figcaption></figure>
<ol>
<li>select the &#8216;Person&#8217; Entity</li>
<li>press the <em>Add Field</em> button</li>
<li>insert name &#8216;id&#8217;</li>
<li>press <em>Enter</em> in the keyboard or the <em>green checkmark</em></li>
</ol>
<h3>Add The &#8216;Address&#8217; Field</h3>
<ol>
<li>select the &#8216;Person&#8217; Entity</li>
<li>press the <em>Add Field</em> button</li>
<li>insert name &#8216;address&#8217;</li>
<li>press <em>Enter</em> in the keyboard or the <em>green checkmark</em></li>
</ol>
<h3>Add The &#8216;birthDate&#8217; Field</h3>
<ol>
<li>select the &#8216;Person&#8217; Entity</li>
<li>press the <em>Add Field</em> button</li>
<li>insert name &#8216;birthDate&#8217;</li>
<li>press <em>Enter</em> in the keyboard or the <em>green checkmark</em></li>
<li>select the &#8216;birthDate&#8217; field</li>
<li>on the right side drawer select the type (currently &#8216;String&#8217;)</li>
<li>in the drop down select &#8216;OffsteDateTime&#8217;</li>
</ol>
<figure id="attachment_1516" aria-describedby="caption-attachment-1516" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1516 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/domain-model-end-1024x504.png" alt="Domain Model Editor After Creating Person Entity With fields" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/04/domain-model-end-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-end-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-end-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-end-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/domain-model-end.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1516" class="wp-caption-text">Domain Model Editor After Creating Person Entity With fields</figcaption></figure>
<h1>Exposed APIs</h1>
<p>In this section we can see the automatically CRUD (create, read, update and Delete) APIs.</p>
<p>more options available here such as adding a new custom endpoint , defining if the project is a contract-first of domain-first and much more.</p>
<p>check the <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-50">Exposed API Documentation</a> for an extensive view of it.</p>
<figure id="attachment_1517" aria-describedby="caption-attachment-1517" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1517 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/exposed-apis-1024x504.png" alt="Exposed API Screen" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/04/exposed-apis-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/exposed-apis-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/exposed-apis-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/exposed-apis-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/exposed-apis.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1517" class="wp-caption-text">Exposed API Screen</figcaption></figure>
<h1>Git</h1>
<p>In Wizzdi Cloud Users allways own the code they generate from the platform . to deploy the app we must first commit it to a GIT repository.</p>
<figure id="attachment_1518" aria-describedby="caption-attachment-1518" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1518 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/git-1024x504.png" alt="Git Screen Before Setup Remotes" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/04/git-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/git-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/git-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/git-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/git.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1518" class="wp-caption-text">Git Screen Before Setup Remotes</figcaption></figure>
<h2>Setup Remote</h2>
<p>lets setup the remote git repository that the platform should push code to.</p>
<p>you should select one of the two options bellow</p>
<h3>Automatic Connection With Github</h3>
<p>&nbsp;</p>
<p>we will do this by connecting with github in one click</p>
<ol>
<li>press the <em>SETUP REMOTES</em> button</li>
<li>on the right side drawer press the <em>pencil</em> button</li>
<li>press the <em>Connect With GitHub</em> button</li>
<li>in GitHub screen press the <em>Install &amp; Authorize</em> button</li>
<li>press the <em>OK</em> button</li>
</ol>
<h3>Setup Remote (Manual)</h3>
<p>lets setup the remote git repository that the platform should push code to.</p>
<p>we will do this by providing the GIT credentials to connect to the target git repository.</p>
<ol>
<li>press the <em>SETUP REMOTES</em> button</li>
<li>on the right side drawer press the <em>pencil</em> button</li>
<li>press the <em>Manual Connection</em> button</li>
<li>insert the <em>Name</em>  which will be the name of the remote in wizzdi cloud</li>
<li>insert the <em>Username</em> which will be used to connect to the git repository</li>
<li>insert the <em>Password </em>which will be used to connect to the git repository</li>
<li>insert the <em>URL</em> of the git repository</li>
<li>press the <em>OK </em>button</li>
</ol>
<blockquote><p>NOTE: some GIT providers such as bitbucket and GitHub do not allow using normal username/password credentials</p>
<p>and App Passwords / developer tokens should be used per the provider documentation.</p></blockquote>
<h2>Commit</h2>
<p>now that we have setup the remote git repository for the application , lets commit the code .</p>
<p>wizzdi cloud will generate compile and commit it to the git repository setup above.</p>
<figure id="attachment_1519" aria-describedby="caption-attachment-1519" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1519 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/commit1-1024x507.png" alt="Git Screen After Setup Remotes" width="800" height="396" srcset="https://wizzdi.com/wp-content/uploads/2024/04/commit1-1024x507.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/commit1-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/commit1-768x380.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/commit1-1536x760.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/commit1.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1519" class="wp-caption-text">Git Screen After Setup Remotes</figcaption></figure>
<ol>
<li>press the <em>Commit</em> button</li>
<li>insert a commit message , for example : &#8220;Init&#8221;</li>
<li>press the <em>Commit </em>button</li>
</ol>
<p>you should now see the progress for generate compile and commit.</p>
<figure id="attachment_1520" aria-describedby="caption-attachment-1520" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1520 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/commit-end-1024x506.png" alt="Successful Commit" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/commit-end-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/commit-end-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/commit-end-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/commit-end-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/commit-end.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1520" class="wp-caption-text">Successful Commit</figcaption></figure>
<p>&nbsp;</p>
<h2>Review The Code</h2>
<p>now the code should be available , this example code can be found <a href="https://github.com/wizzdi/quickstart-prod-runtime">here.</a></p>
<p>&nbsp;</p>
<h1>Deploy</h1>
<p>lets deploy our application into Wizzdi Cloud secure scalable Cloud.</p>
<figure id="attachment_1521" aria-describedby="caption-attachment-1521" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1521 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/overview-install-1024x505.png" alt="App Overview After Commit" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/overview-install-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/overview-install-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/overview-install-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/overview-install-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/overview-install.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1521" class="wp-caption-text">App Overview After Commit</figcaption></figure>
<p>in the overview screen press the <em>install</em> button , press the <em>OK</em> button in the next dialog.</p>
<p>a progress screen for the app deployment will be opened.</p>
<p>when it is successfully done we will see this screen:</p>
<figure id="attachment_1522" aria-describedby="caption-attachment-1522" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1522 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/deploy-done-1024x506.png" alt="Successful Deployment" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/deploy-done-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/deploy-done-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/deploy-done-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/deploy-done-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/deploy-done.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1522" class="wp-caption-text">Successful Deployment</figcaption></figure>
<h1>Run</h1>
<p>now that the app is deployed we can check the app&#8217;s <em>Overview</em> section there we will see the server&#8217;s URL as well as the swagger URL which allows us to try APIS</p>
<figure id="attachment_1524" aria-describedby="caption-attachment-1524" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1524 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/run-1024x506.png" alt="Overview Section When App is Deployed" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/run-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/run-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/run-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/run-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/run.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1524" class="wp-caption-text">Overview Section When App is Deployed</figcaption></figure>
<p>we can now press the <em>copy</em> button next to <em>App Url</em> or next to the <em>Swagger Url</em> to get the api root or the swagger UI.</p>
<figure id="attachment_1525" aria-describedby="caption-attachment-1525" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1525 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/swagger-1024x552.png" alt="The Swagger Interface" width="800" height="431" srcset="https://wizzdi.com/wp-content/uploads/2024/04/swagger-1024x552.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/swagger-300x162.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/swagger-768x414.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/swagger-1536x828.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/swagger.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1525" class="wp-caption-text">The Swagger Interface</figcaption></figure><p>The post <a href="https://wizzdi.com/docs/projects/quickstart/">Quickstart</a> first appeared on <a href="https://wizzdi.com">wizzdi</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://wizzdi.com/docs/projects/quickstart/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Book Store</title>
		<link>https://wizzdi.com/docs/projects/book-store/</link>
					<comments>https://wizzdi.com/docs/projects/book-store/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Thu, 18 Apr 2024 11:17:24 +0000</pubDate>
				<guid isPermaLink="false">https://wizzdi.com/?post_type=docs&#038;p=1698</guid>

					<description><![CDATA[<p>Introduction this Section&#8217;s purpose is to take you through the process of building a book store management app. the example is available on wizzdi cloud public marketplace &#160; App Overview Domain Model in this part we will create the domain model to describe the normal data that is handled in a typical book store: Book,Author,BookLend,Genre,Subscription,Person [&#8230;]</p>
<p>The post <a href="https://wizzdi.com/docs/projects/book-store/">Book Store</a> first appeared on <a href="https://wizzdi.com">wizzdi</a>.</p>]]></description>
										<content:encoded><![CDATA[<h1>Introduction</h1>
<p>this Section&#8217;s purpose is to take you through the process of building a book store management app.</p>
<p>the example is <a href="https://cloud.wizzdi.com/main/app-details?appId=1d8bbaa7-f376-4541-a2e1-aad112be2248&amp;overViewType=projectGroup&amp;entryId=95a2a5dc-8e44-4f91-857c-3be98e00bc49&amp;marketplace=public">available</a> on wizzdi cloud public marketplace</p>
<p>&nbsp;</p>
<h1>App Overview</h1>
<figure id="attachment_1702" aria-describedby="caption-attachment-1702" style="width: 800px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-1702 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1-1024x504.png" alt="App Overview" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/app-overview-1.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /><figcaption id="caption-attachment-1702" class="wp-caption-text">App Overview</figcaption></figure>
<h1>Domain Model</h1>
<p>in this part we will create the domain model to describe the normal data that is handled in a typical book store: <strong>Book,Author,BookLend,Genre,Subscription,Person</strong></p>
<p>the Domain Model Editor is a powerful tool that allows creating connection between entities ,setting indexes , creating inheritance relationship and much more.</p>
<p>for a more extensive view of the Domain Model Editor check its <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-20">documentation</a>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1705 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/book-store-domain-model-1024x505.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/book-store-domain-model-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-domain-model-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-domain-model-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-domain-model-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-domain-model.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2>The Person Entity</h2>
<p>The Person Entity will be used as a <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-30"><em>Mapped Super Class </em></a>for the Customer and the Author Entities , a <em>Mapped Super Class</em> is kind of a Mold for Other Entities , this allows us to have the name ,id , birthDate of Person in the Author and Customer Entities.</p>
<h2>The Author Entity</h2>
<p>The Author Entity defines an author , it is connected with the book entity in a <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-32">many-to-one</a> relationship since Author has Many Books and in our example Book may have only single author.</p>
<blockquote><p>if we did wanted to support multiple authors for a book we would need an intermediate entity called BookToAuthor which will define a <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-33">many-to-many</a> relationship between book and author</p></blockquote>
<h2>The Genre Enum</h2>
<p>the Genre Enum is a list of predefined values that will represent the possible Genres we support in our Book Store. we may add more to the list . for more flexibility we should have defined this as an Entity.</p>
<h2>The BookLend Entity</h2>
<p>The BookLend Entity will be used to represent the fact that a Book was taken by a Customer , this will have the date it was taken as well as the date it should be returned and the date of actual return.</p>
<h1>Exposed APIs</h1>
<p>In this section we can see the automatically CRUD (create, read, update and Delete) APIs.</p>
<p>more options available here such as adding a new custom endpoint , defining if the project is a contract-first of domain-first and much more.</p>
<p>check the <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-50">Exposed API Documentation</a> for an extensive view of it.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1706 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/book-store-exposed-api-1024x505.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/book-store-exposed-api-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-exposed-api-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-exposed-api-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-exposed-api-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-exposed-api.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="mceTemp"></div>
<h1>Review</h1>
<h2>Review The Code</h2>
<p>now the code is available, this example code can be found <a href="https://github.com/wizzdi/book-store-app">here.</a></p>
<h2>Review The App&#8217;s API Docs</h2>
<p>the swagger docs for the app is available <a href="https://book-store.asaf-wizzdi-com-s-workspace.cluster.wizzdi.com/swagger-ui.html">here.</a></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1707 size-large" src="https://wizzdi.com/wp-content/uploads/2024/04/book-store-swagger-1024x506.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/04/book-store-swagger-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-swagger-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-swagger-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-swagger-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/04/book-store-swagger.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p><p>The post <a href="https://wizzdi.com/docs/projects/book-store/">Book Store</a> first appeared on <a href="https://wizzdi.com">wizzdi</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://wizzdi.com/docs/projects/book-store/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Pizza Delivery App</title>
		<link>https://wizzdi.com/docs/projects/pizza-delivery-app/</link>
					<comments>https://wizzdi.com/docs/projects/pizza-delivery-app/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 01 May 2024 12:04:35 +0000</pubDate>
				<guid isPermaLink="false">https://wizzdi.com/?post_type=docs&#038;p=1931</guid>

					<description><![CDATA[<p>Introduction this Section&#8217;s purpose is to take you through the process of building a Pizza Delivery App. the backend will serve multiple clients: the management &#8211; used by management managing branches managing toppings the user app &#8211; used by customer to order pizza allows creating a new order adding multiple pizzas adding toppings for a [&#8230;]</p>
<p>The post <a href="https://wizzdi.com/docs/projects/pizza-delivery-app/">Pizza Delivery App</a> first appeared on <a href="https://wizzdi.com">wizzdi</a>.</p>]]></description>
										<content:encoded><![CDATA[<h1>Introduction</h1>
<p>this Section&#8217;s purpose is to take you through the process of building a Pizza Delivery App.</p>
<p>the backend will serve multiple clients:</p>
<ol>
<li>the management &#8211; used by management
<ol>
<li>managing branches</li>
<li>managing toppings</li>
</ol>
</li>
<li>the user app &#8211; used by customer to order pizza
<ol>
<li>allows creating a new order</li>
<li>adding multiple pizzas</li>
<li>adding toppings for a pizza</li>
<li>pay via PayPal</li>
<li>track delivery location live using WebSocket</li>
</ol>
</li>
<li>the delivery app &#8211; used by delivery to report location
<ol>
<li>push GPS location</li>
</ol>
</li>
</ol>
<p>the example is <a href="https://cloud.wizzdi.com/main/app-details?appId=76937e40-e487-4d1a-a333-00bd3553bd72&amp;overViewType=projectGroup&amp;entryId=23eff044-f53c-4e44-91bc-8f9a8ca18d9c&amp;marketplace=public">available</a> on wizzdi cloud public marketplace</p>
<p>&nbsp;</p>
<h1>App Overview</h1>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1934 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-overview-1024x506.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-overview-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-overview-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-overview-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-overview-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-overview.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h1>Domain Model</h1>
<p>in this part we will create the domain model to describe the normal data that is handled in a typical Pizza Restaurant: <strong>Basic,SecuredBasic,</strong><strong>Branch,Topping,PizzaOrder,</strong><strong>OrderStatus,</strong><strong>Pizza</strong><strong>,</strong><strong>PizzaToTopping</strong></p>
<p>the Domain Model Editor is a powerful tool that allows creating connection between entities ,setting indexes , creating inheritance relationship and much more.</p>
<p>for a more extensive view of the Domain Model Editor check its <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-20">documentation</a>.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1935 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-model-1024x506.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-model-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-model-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-model-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-model-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-model.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2>The Basic Entity</h2>
<p>The Basic Entity will be used as a <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-30"><em>Mapped Super Class </em></a>for all other Entities , a <em>Mapped Super Class</em> is kind of a Mold for SecuredBasic, Branch and  Topping, this allows us to have the name ,id , creationDate, updateDate of Basic in all the other Entities.</p>
<h2>The SecuredBasic Entity</h2>
<p>The SecuredBasic Entity will be used as a <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-30"><em>Mapped Super Class </em></a>for all other Entities  , this allows us to have the all the fields of Basic Entity as well as the creator field which will hold the creator of the things the customers create , this will automatically filter the data so users only see their own data (except admin users).</p>
<h2>The Branch Entity</h2>
<p>The Branch Entity defines a Branch of our Pizza Restaurant chain, a pizza order will be made at a specific branch</p>
<h2>The Topping Entity</h2>
<p>The Topping Entity defines the possible toppings our Pizza Restaurant chain provides and their price.</p>
<h2>The PizzaOrder Entity</h2>
<p>The PizzaOrder Entity will be used to represent a new Pizza Order</p>
<h2>The OrderStatus Enum</h2>
<p>the OrderStatus Enum is a list of predefined values that will represent the possible Status values a Pizza Order Goes through</p>
<h2>The Pizza Entity</h2>
<p>The Pizza Entity will be used to represent a Pizza in a Pizza Order , we can have many pizzas in a single pizza order</p>
<h2>The PizzaToTopping Entity</h2>
<p>The PizzaToTopping Entity will be used to represent a Topping on a Pizza , the user will be able to select the toppingCoverage , a pizza may have many toppings.</p>
<h1>Exposed APIs</h1>
<p>In this section we can see the automatically CRUD (create, read, update and Delete) APIs.</p>
<p>more options available here such as adding a new custom endpoint , defining if the project is a contract-first of domain-first and much more.</p>
<p>check the <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-50">Exposed API Documentation</a> for an extensive view of it.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1936 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-consumed-apis-1024x506.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-consumed-apis-1024x506.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-consumed-apis-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-consumed-apis-768x379.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-consumed-apis-1536x758.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-consumed-apis.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>&nbsp;</p>
<h2>Custom APIs</h2>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1938" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-custom-apis-1024x505.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-custom-apis-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-custom-apis-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-custom-apis-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-custom-apis-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-custom-apis.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>we have added three APIs in addition to the automatically created CRUD apis;</p>
<ol>
<li>getPizzaOrerSummary &#8211; given a PizzaOrder id will return a summary of the order , we will use this to display a summary of the order before paying , it is connected to the <em>OrderSummayFlow</em>(more on flows later)</li>
<li>prepareCheckout &#8211; given a pizza order id we will start the checkout process with PayPal , it is connected to the <em>PrepareCheckoutFlow</em></li>
<li>completeOrder &#8211; this will be called by PayPal when the order is paid for , providing a PayPal order id we will mark the order as paid and change the PizzaOrder Status , it is connected to the <em>CheckoutValidationWebhookFlow</em></li>
</ol>
<p>&nbsp;</p>
<h1>Flows</h1>
<p>business flows are used to express a custom business logic connected to custom APIs  or other type of triggers (schedule ,event and more) ,</p>
<p>check the <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-83ementor-toc__heading-anchor-50">Flows Documentation</a> for an extensive view of it.</p>
<div class="mceTemp"></div>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1939" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-flows-1024x504.png" alt="" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-flows-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-flows-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-flows-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-flows-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-flows.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>&nbsp;</p>
<h2>OrderSummaryFlow</h2>
<p>the order summary flow is using a Method Definition activity which is written in Java</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1940" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-order-summary-1024x504.png" alt="" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-order-summary-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-order-summary-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-order-summary-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-order-summary-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-order-summary.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2>PrepareCheckoutFlow</h2>
<p>the <em>PrepareCheckoutFlow</em> will be called when the user tries to pay for an Order , it :</p>
<ol>
<li>fetches the order based on the incoming id</li>
<li>gets the order summary by calling the getSummary method definition (which calls the logic from OrderSummaryFlow)</li>
<li>if a PayPal order id is not set on this order</li>
<li>calls PayPal api with the total that should be paid and the order id</li>
<li>takes PayPal order id from the response and sets it on the order</li>
<li>returns the order</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1941 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-prepare-order-flow-1024x505.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-prepare-order-flow-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-prepare-order-flow-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-prepare-order-flow-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-prepare-order-flow-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-prepare-order-flow.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<p>&nbsp;</p>
<h2>CheckoutValidationWebhookFlow</h2>
<p>the <em>CheckoutValidationWebhookFlow </em>will be called by PayPal (the url of this API should be set as a webhook in PayPal) when the user successfully paid for an Order , it :</p>
<p>&nbsp;</p>
<ol>
<li>calls the PayPal api to verify the webhook call ( this prevents anyone from simply calling this webhook and impersonate payapl)</li>
<li>if it was not validated &#8211; return failure</li>
<li>fetches the order</li>
<li>updates the order status to <em>STARTED</em></li>
<li>return success</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1954 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-checkout-validated-webhook-flow3-1024x504.png" alt="" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-checkout-validated-webhook-flow3-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-checkout-validated-webhook-flow3-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-checkout-validated-webhook-flow3-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-checkout-validated-webhook-flow3-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-checkout-validated-webhook-flow3.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2>UpdatePizzaOrderFlow</h2>
<p>the UpdatePizzaOrderFlow will be trigger when a PizzaOrder is updated (it is triggered by an event), it will push update message of the order status to WebSocket (more on Websocket integration later), this will allow us to update the customer without constantly calling an api to refresh the data , it :</p>
<p>&nbsp;</p>
<ol>
<li>fetches all the websocket sessions that listen to the changed pizza order id</li>
<li>creates an update message that will be sent to all of them</li>
<li>for every session it sends the message</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1944 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-update-pizza-order-flow-1024x504.png" alt="" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-update-pizza-order-flow-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-update-pizza-order-flow-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-update-pizza-order-flow-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-update-pizza-order-flow-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-update-pizza-order-flow.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h1>Integrations</h1>
<p>Integrations allow adding additional services to our deployed app , it also adds relevant integration code to the app and adds additional activities to the activities toolbar .</p>
<p>check the <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-120">Integration Documentation</a> for an extensive view of it.</p>
<p>in this application we will be using only one integration &#8211; the websocket integration.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1945" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integrations-1024x505.png" alt="" width="800" height="395" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integrations-1024x505.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integrations-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integrations-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integrations-1536x757.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integrations.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2>Web Socket Integration</h2>
<p>we are using the websocket integration in our <em>UpdatePizzaOrderFlow</em>, here we define the url of the websocket endpoint (we can have multiple endpoints) , and the message structure that will be used in our websocket endpoint.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1946" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integration-ws-1024x504.png" alt="" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integration-ws-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integration-ws-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integration-ws-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integration-ws-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-integration-ws.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h1>Security</h1>
<p>since we have multiple users for our backend it is important that we allow each user to execute only the actions it allowed to do.</p>
<p>additionally we also like to support SSO login and registration.</p>
<h2>SSO Login</h2>
<p>in the sso login area we can define support for sso login /registration , wizzdi cloud support many of the known providers as well as the option to add a custom provider.</p>
<p>check the <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-133">SSO Login Documentation</a> for an extensive view of it.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-large wp-image-1949" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-sso-login-1024x504.png" alt="" width="800" height="394" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-sso-login-1024x504.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-sso-login-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-sso-login-768x378.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-sso-login-1536x756.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-sso-login.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2>Permissions</h2>
<p>in the permissions area we set which roles are allowed to which permissions (this can be done from this screen or from the exposed apis screen by pressing the lock icon next to the api endpoint).</p>
<p>since Branch and Toppings should not be added by normal app users we will allow only admin to manage them.</p>
<p>check the <a href="https://wizzdi.com/wizzdi-cloud-user-guide/#elementor-toc__heading-anchor-135">Permissions Documentation</a> for an extensive view of it.</p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1951 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-permissions-1024x507.png" alt="" width="800" height="396" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-permissions-1024x507.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-permissions-300x148.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-permissions-768x380.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-permissions-1536x760.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-permissions.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h2>Properties</h2>
<p>finally we need to set some properties to make PayPal SSO Clients work :</p>
<ol>
<li>SSO Clients details , this will require PayPal client and secret</li>
<li>SSO Clients scope &#8211; https://api.paypal.com/v1/payments/.*</li>
<li>SSO Clients token URI &#8211; https://api-m.sandbox.paypal.com/v1/oauth2/token</li>
<li>SSO Clients authorization URI &#8211; https://api-m.sandbox.paypal.com/signin/authorize</li>
</ol>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1952 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-properties-1024x503.png" alt="" width="800" height="393" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-properties-1024x503.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-properties-300x147.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-properties-768x377.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-properties-1536x754.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-properties.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p>
<h1>Review</h1>
<h2>Review The Code.</h2>
<p>now the code is available , this example code can be found <a href="https://github.com/wizzdi/pizza-delivery">here.</a></p>
<h2>Review The App&#8217;s API Docs</h2>
<p>The swagger docs for the app is available <a href="https://book-store.asaf-wizzdi-com-s-workspace.cluster.wizzdi.com/swagger-ui.html">here.</a></p>
<p><img loading="lazy" decoding="async" class="aligncenter wp-image-1937 size-large" src="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-swagger-1024x509.png" alt="" width="800" height="398" srcset="https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-swagger-1024x509.png 1024w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-swagger-300x149.png 300w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-swagger-768x382.png 768w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-swagger-1536x764.png 1536w, https://wizzdi.com/wp-content/uploads/2024/05/pizza-delivery-app-swagger.png 1920w" sizes="(max-width: 800px) 100vw, 800px" /></p><p>The post <a href="https://wizzdi.com/docs/projects/pizza-delivery-app/">Pizza Delivery App</a> first appeared on <a href="https://wizzdi.com">wizzdi</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://wizzdi.com/docs/projects/pizza-delivery-app/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
