<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: ngou loic</title>
    <description>The latest articles on DEV Community by ngou loic (@loicgeek).</description>
    <link>https://dev.to/loicgeek</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F227559%2Faee4709f-425c-402e-8fd5-48012f86a072.jpeg</url>
      <title>DEV Community: ngou loic</title>
      <link>https://dev.to/loicgeek</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/loicgeek"/>
    <language>en</language>
    <item>
      <title>Speed Log : the app to send parcel within persons.</title>
      <dc:creator>ngou loic</dc:creator>
      <pubDate>Thu, 12 May 2022 09:21:06 +0000</pubDate>
      <link>https://dev.to/loicgeek/speed-log-the-app-to-send-parcel-within-persons-3165</link>
      <guid>https://dev.to/loicgeek/speed-log-the-app-to-send-parcel-within-persons-3165</guid>
      <description>&lt;h3&gt;
  
  
  Overview of My Submission
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;code&gt;Speed Log&lt;/code&gt;(Speedest Logistics)&lt;/strong&gt; is a mobile application that allows user to send parcels within a City in a few click only. Principal features are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;User registration and authentification&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sending parcel&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make an offer to carry a parcel&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Track a parcel by Scanning the QrCode or by Entering the code manually.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The components of Appwrite We used to develop this application are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AppWrite Authentification&lt;/strong&gt;: User can create an account and register with email in our application.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vWOdXbrt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jll9cvb96jkk9ksqsnk6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vWOdXbrt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jll9cvb96jkk9ksqsnk6.png" alt="Login Screen" width="880" height="1809"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GvTfB_lV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q1yaxob6xekyzaboncc4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GvTfB_lV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q1yaxob6xekyzaboncc4.png" alt="Register screen" width="880" height="1809"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Appwrite Database&lt;/strong&gt;: Once the user is registered, We need more informations about the user, so we used this to save users informations, parcels, cities and quarters.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Appwrite Functions&lt;/strong&gt;: We created a custom function to send a push notification to users when a new parcel is created, when a new offer for carrying parcel is made and when an offer has been accepted by the sender.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3ZUhAnRU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o543rw544848cm5lnu7a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3ZUhAnRU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o543rw544848cm5lnu7a.png" alt="New parcel notification" width="880" height="1809"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--AgjEokMy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a2ycqy3ldascxj7cgczz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AgjEokMy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a2ycqy3ldascxj7cgczz.png" alt="Push ahead notification" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Appwrite Realtime&lt;/strong&gt;: Once the user starts delivering a parcel, a background task launch to update the deliverer location continuously so the sender can track the realtime location using the map.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jYmeoN06--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u0x211idv7l2vnph4ppc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jYmeoN06--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u0x211idv7l2vnph4ppc.png" alt="Track parcel in realtime" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Mobile Moguls&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Code
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/loicgeek/speed_log"&gt;https://github.com/loicgeek/speed_log&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Additional Resources / Info
&lt;/h3&gt;

&lt;p&gt;We used firebase to send and receive push notifications in our application, ressources used are: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Firebase: &lt;a href="https://github.com/firebase/flutterfire"&gt;https://github.com/firebase/flutterfire&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;NodeJs firebase admin: &lt;a href="https://www.npmjs.com/package/firebase-admin"&gt;https://www.npmjs.com/package/firebase-admin&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Custom domain:&lt;/strong&gt;&lt;br&gt;
We used our contabo VPS to install appwrite on server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Additional screenshots&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eQCTUpw2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ngnnkam4z83c98bl7hny.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eQCTUpw2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ngnnkam4z83c98bl7hny.png" alt="Home page" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--dSN_U1ed--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jfnmnbzpmf4ecxbkt9v5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--dSN_U1ed--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jfnmnbzpmf4ecxbkt9v5.png" alt="User profile page" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--CDkM5yFe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yxpl0t4v5e1n8ai6ryr1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--CDkM5yFe--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yxpl0t4v5e1n8ai6ryr1.png" alt="Waiting parcels" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LcoIos1U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7yvs88bc9husli3f6rw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LcoIos1U--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v7yvs88bc9husli3f6rw.png" alt="Scan parcel Qrcode to complete the delivery" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--YZqn42yM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3x8ddpsm4fxx7f0vha3e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--YZqn42yM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3x8ddpsm4fxx7f0vha3e.png" alt="Parcel QRCode" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--0yzRj_wv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6emj9q8tvdjgc7nu5bx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--0yzRj_wv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/m6emj9q8tvdjgc7nu5bx.png" alt="Parcel details" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Ek_2Rcni--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0ltwv8crlr3pdi262f8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Ek_2Rcni--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/q0ltwv8crlr3pdi262f8.png" alt="Offers list" width="880" height="1809"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>appwritehack</category>
      <category>flutter</category>
    </item>
  </channel>
</rss>
