-
Notifications
You must be signed in to change notification settings - Fork 0
/
post11.html
458 lines (401 loc) · 20.3 KB
/
post11.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="shortcut icon" type="image/x-icon" href="../images/p.png">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<title>Making a platform to reduce food waste</title>
<meta name="description" content="The person that you will spend the most time with in your life is yourself,
so you better try to make yourself as interesting as possible.">
<link rel="canonical" href="index.html">
<meta name="keywords" content="Pablo Biedma Nunez, Pablo Biedma, Pablo Biedma Núnez, Pablo, Spain, Spanish, Computer Scientist, Computer Science, Engineering, programming, program, developer, IT, cinema, film, filmmaker, movies, software, AI, chess">
<meta name="author" content="Pablo Biedma Nunez">
<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>
<script type='application/ld+json'>{"@context":"https:\/\/schema.org","@type":"WebSite","@id":"#website","url":"https:\/\/www.pablobiedma.com\/","name":"Pablo Biedma","potentialAction":{"@type":"SearchAction","target":"https:\/\/www.pablobiedma.com\/?s={search_term_string}","query-input":"required name=search_term_string"}}</script>
<script type="text/javascript">
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/2.3\/svg\/","svgExt":".svg","source":{"concatemoji":"http:\/\/www.pablobiedma.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=4.8.7"}};
!function(a,b,c){function d(a){var b,c,d,e,f=String.fromCharCode;if(!k||!k.fillText)return!1;switch(k.clearRect(0,0,j.width,j.height),k.textBaseline="top",k.font="600 32px Arial",a){case"flag":return k.fillText(f(55356,56826,55356,56819),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,56826,8203,55356,56819),0,0),c=j.toDataURL(),b!==c&&(k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,56128,56423,56128,56418,56128,56421,56128,56430,56128,56423,56128,56447),0,0),b=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55356,57332,8203,56128,56423,8203,56128,56418,8203,56128,56421,8203,56128,56430,8203,56128,56423,8203,56128,56447),0,0),c=j.toDataURL(),b!==c);case"emoji4":return k.fillText(f(55358,56794,8205,9794,65039),0,0),d=j.toDataURL(),k.clearRect(0,0,j.width,j.height),k.fillText(f(55358,56794,8203,9794,65039),0,0),e=j.toDataURL(),d!==e}return!1}function e(a){var c=b.createElement("script");c.src=a,c.defer=c.type="text/javascript",b.getElementsByTagName("head")[0].appendChild(c)}var f,g,h,i,j=b.createElement("canvas"),k=j.getContext&&j.getContext("2d");for(i=Array("flag","emoji4"),c.supports={everything:!0,everythingExceptFlag:!0},h=0;h<i.length;h++)c.supports[i[h]]=d(i[h]),c.supports.everything=c.supports.everything&&c.supports[i[h]],"flag"!==i[h]&&(c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&c.supports[i[h]]);c.supports.everythingExceptFlag=c.supports.everythingExceptFlag&&!c.supports.flag,c.DOMReady=!1,c.readyCallback=function(){c.DOMReady=!0},c.supports.everything||(g=function(){c.readyCallback()},b.addEventListener?(b.addEventListener("DOMContentLoaded",g,!1),a.addEventListener("load",g,!1)):(a.attachEvent("onload",g),b.attachEvent("onreadystatechange",function(){"complete"===b.readyState&&c.readyCallback()})),f=c.source||{},f.concatemoji?e(f.concatemoji):f.wpemoji&&f.twemoji&&(e(f.twemoji),e(f.wpemoji)))}(window,document,window._wpemojiSettings);
</script>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-83915680-3"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-83915680-3');
</script>
<style type="text/css">
body{
width:100%;
overflow-x:hidden;
overflow-y:hidden;
}
img.wp-smiley,
img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 .07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='magnus-style-css' href='../css/magnus.css' type='text/css' media='all' />
<script type="text/javascript">
(function(url){
if(/(?:Chrome\/26\.0\.1410\.63 Safari\/537\.31|WordfenceTestMonBot)/.test(navigator.userAgent)){ return; }
var addEvent = function(evt, handler) {
if (window.addEventListener) {
document.addEventListener(evt, handler, false);
} else if (window.attachEvent) {
document.attachEvent('on' + evt, handler);
}
};
var removeEvent = function(evt, handler) {
if (window.removeEventListener) {
document.removeEventListener(evt, handler, false);
} else if (window.detachEvent) {
document.detachEvent('on' + evt, handler);
}
};
var evts = 'contextmenu dblclick drag dragend dragenter dragleave dragover dragstart drop keydown keypress keyup mousedown mousemove mouseout mouseover mouseup mousewheel scroll'.split(' ');
var logHuman = function() {
var wfscr = document.createElement('script');
wfscr.type = 'text/javascript';
wfscr.async = true;
wfscr.src = url + '&r=' + Math.random();
(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(wfscr);
for (var i = 0; i < evts.length; i++) {
removeEvent(evts[i], logHuman);
}
};
for (var i = 0; i < evts.length; i++) {
addEvent(evts[i], logHuman);
}
})('//www.pablobiedma.com/');
</script> <style type="text/css">
.site-title,
.site-description {
position: absolute;
clip: rect(1px, 1px, 1px, 1px);
}
</style>
<style type="text/css" id="wp-custom-css">
.site-header-image .section-image {
opacity: 0.87;
}
#menu-item-14 a{
color: #ed7d86 !important;
}
#menu-item-14 a:hover{
color: white !important;
}
#subscribe-text-section {
text-align: center;
}
.sya_container > ul {
list-style: none;
padding-left: 0px;
margin-left: 0px;
}
.sya_postcontent > span {
width: 150px !important;
display: inline-block;
}
.reading-time {
display: inline-block;
}
.reading-time-result {
margin-right: 0px !important;
color: #a1a1a9;
}
.by-author {
color: #a1a1a9;
}
.entry-title {
margin-bottom: 0px !important;
margin-top: 10px;
white-space: pre-wrap;
word-break: keep-all;
}
.entry-meta {
display: inline-block;
margin-bottom: 10px;
}
.entry-ul {
padding-left: 0px;
margin-left: 0px;
}
.entry-ul > li:first-child {
list-style-type: none;
}
.entry-ul > li {
float: left;
padding: 1px;
}
.posted-on {
margin-right: 0px !important;
}
@media (max-width: 769px) {
/* For mobile phones: */
.site-header-image {
margin-bottom: 25px !important;
}
}
@media (max-width: 767px) {
/* For mobile phones: */
.sya_postcontent > span {
display: block;
width: 100%;
}
.sya_postcontent {
margin-bottom: 10px;
}
}
@media (min-width: 1400px) {
/* For mobile phones: */
.sya_postcontent > span {
width: 180px !important;
}
}
.landing-page-content-div {
position: absolute;
top: 25%;
width:100%;
}
@media (max-width: 767px) {
/* For mobile phones: */
.landing-page-content-div {
top: 15%;
}
}
.landing-page-title {
color: white;
opacity: 1;
font-size: 2.8935em;
text-align: center;
}
@media (max-width: 767px) {
/* For mobile phones: */
.landing-page-title {
font-size: 1.7em;
margin-left: 5px;
margin-right: 5px;
}
.landing-section-image {
margin-bottom: 0px !important;
}
}
.landing-section-image {
min-height: 100vh !important;
margin: 0px !important;
}
.landing-page-article {
display: none !important;
}
.landing-page-text-div {
text-align: center;
line-height: 1.4em;
color: #bfbfbf;
}
@media (max-width: 767px) {
/* For mobile phones: */
.landing-page-text-div {
font-size: 0.85em;
line-height: 1em;
}
.landing-page-text-div .entry-content {
width: 100% !important;
margin: 0px 0px 25px 0px !important;
padding: 0px 10px 0px 10px !important;
}
}
.landing-page-text-div .entry-content {
width: 70%;
margin: auto;
margin-bottom: 25px;
}
.landing-page-text-buttons button {
margin: 5px;
width: 50vh;
max-width: 400px;
}
.landing-page-text-buttons .traffic {
max-width: 815px;
width: 100vh;
}
@media (max-width: 822px) {
/* For mobile phones: */
.landing-page-text-buttons .traffic {
max-width: 400px;
width: 50vh;
}
}
button {
font-size: 0.6666666667em;
letter-spacing: 0.1316872428em;
color: #fdf1f2;
text-shadow: 0 0 0 transparent;
border-style: solid;
border-width: 1px 1px 3px;
border-color: #eb6e78 #d4636c #bc5860;
border-radius: 3px;
background: #eb6e78;
padding: 0.8573333333em 1.286em;
-webkit-transition: all 0.2s ease-in-out;
-moz-transition: all 0.2s ease-in-out;
transition: all 0.2s ease-in-out; }
button:hover {
background: #ef8b93;
border-color: #ef8b93 #ed7d86 #d4636c;
color: #fff;
text-shadow: 0 1px 1px #bc5860;
-webkit-transition: all 0.15s ease-in-out;
-moz-transition: all 0.15s ease-in-out;
transition: all 0.15s ease-in-out;
}
button:active {
background: #d4636c;
border-color: #bc5860 #bc5860 #bc5860;
border-width: 3px 1px 1px;
}
button:focus {
outline: none;
box-shadow: 0 0 1px 4px #f7c5c9;
-webkit-transition: all 0.15s ease-in-out;
-moz-transition: all 0.15s ease-in-out;
transition: all 0.15s ease-in-out;
}
button {
font-family: "Montserrat", sans-serif;
font-size: 1em;
clear: both;
text-transform: uppercase;
line-height: 1; }
@media (max-width: 480px) {
button {
font-size: 0.8em;
word-wrap: break-word; } }
@media (min-width: 1600px) {
button {
font-size: 1em; } }
</style>
</head>
<body class="page-template-default page page-id-5 single featured-image"><!-- BEGIN WAYBACK TOOLBAR INSERT -->
<style type="text/css">
body {
margin-top:0 !important;
padding-top:0 !important;
/*min-width:800px !important;*/
}
</style> <div id="page" class="hfeed site">
<a class="skip-link screen-reader-text" href="#content">Skip to content</a>
<header id="masthead" class="site-header" role="banner">
<div class="site-branding">
<h1 class="site-title"><a href="index.html" rel="home">Pablo Biedma</a></h1>
<h2 class="site-description"></h2>
</div><!-- .site-branding -->
<nav id="site-navigation" class="header-navigation" role="navigation">
<div class="menu-header-container">
<ul id="header-menu" class="menu"><li id="menu-item-7" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item menu-item-7"><a href="index.html">Home</a></li>
<li id="menu-item-2863" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2863"><a target="_blank" href="archives.html">Archives</a></li>
<li id="menu-item-14" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-14"><a target="_blank" href="about.html">About Pablo</a></li>
</ul> </div>
<button class="sidebar-toggle" aria-controls="sidebar" aria-expanded="false">
<span class="sidebar-toggle-icon">Sidebar</span>
</button>
</nav><!-- #site-navigation -->
</header><!-- #masthead -->
<section class="site-header-image">
<div class="section-image" style="background-image: url(../images/waste.png);">
</div><!-- .section-image -->
</section><!-- .site-header-image -->
<section id="content" class="site-content">
<div id="primary" class="content-area">
<main id="main" class="site-main" role="main">
<article id="post-3153" class="post-3153 post type-post status-publish format-standard has-post-thumbnail hentry category-general">
<header class="entry-header">
<h1 class="entry-title">Making a platform to reduce food waste</h1>
<div class="entry-meta">
<span class="posted-on">Posted on <a href="archives.html" rel="bookmark"><time class="entry-date published" datetime="2020-11-27T15:52:45+00:00">July 10, 2020</time><time class="updated" datetime="2020-09-27T16:21:36+00:00">July 10, 2020</time></a></span> ● <div class="reading-time">Reading time: <span class="reading-time-result">5 minutes</span></div> ● By <a href="about.html" rel="bookmark"><span class="entry-date published">Pablo Biedma</span></a>
</div><!-- .entry-meta -->
</header><!-- .entry-header -->
<div class="entry-content">
<p>I feel truly proud. My friend Akshit and I created "ROOTS", a platform to reduce food waste and CO2 footprint and save money by using deep learning to improve from past orders.</p>
<p>In this project, we've worked faster and more efficiently than ever before, and we ended up with an impactful result. We learned a lot about time management while creating such an amazing platform.</p>
<p>We came up with this idea originally while participated in a great Hackathon.</p>
<p><strong>EUR 2000 million</strong> in Food waste is generated for AgroChain in the Netherlands (Source: <em>Ministry of Agriculture, Nature and Food Quality</em>)</p>
<p>Restaurants account for 60-100 million of this waste.</p>
<p>A typical restaurant wastes around 18% of the fresh food it purchases.</p>
<p>Most of this food waste is generated due to sub-optimal ordering practices. Where the supply chain orders are placed using gut feeling and experience instead of actionable data.</p>
<p>This situation is further worsened during the current coronavirus crisis. With restaurants struggling to survive, wasting resources during covid 19 is not an option.</p>
<p><strong>Roots</strong> is a platform that aims to reduce these inefficiencies in the supply chain for restaurants.</p>
<p>With Roots, we reduce the food waste in restaurants while increasing the profits for them and farmers. Our platform leverages machine learning to forecast future amounts of supplies to order based on previous sales.</p>
<p>To do this, we first break down each of the restaurant dishes into ingredients. </p>
<p>Then we use past sales data to predict future sales.</p>
<p>We take into account multiple parameters for prediction; these include total sales per day, the time of the year, and the holidays.</p>
<p>Our test on a restaurant dataset shows we are 86% accurate, which is 16% more than the industry practice of ordering based on gut feeling and experience. This accuracy is expected to improve as our algorithm is always training.</p>
<p>This generates multiple benefits for various stakeholders involved.</p>
<p>The stakeholders include; lower operating costs for the restaurant, a reduction in their food wastage, and a reduced carbon footprint.</p>
<p>As multiple restaurants use our platform, we can leverage group buying power to order the supplies directly from the farmers. Thus, Bypassing the traditional entities in the supply chain.</p>
<p><strong>And this is how it looks:</strong></p>
<p><iframe src="https://www.youtube.com/embed/GjVgtxrm15I" width="420" height="315">
</iframe></p>
<p> </p>
<p>We plan to deploy this platform in the city of delft at small restaurants like<em> Pasta2go</em> and <em>Doner kingdom</em>.</p>
<p>A typical small restaurant like Pasta2Go spends around 3000 Euros every month ordering fresh supplies from the distributors.</p>
<p>Using the rough figure of 18.5% of wasted fresh food leads to a savings of around 550 euros per month for the restaurant owners. Our platform takes a small cut from these monthly savings, roundabout 5%.</p>
<p>Our main revenue is generated from the restaurants that are using our platform.</p>
<p>We generate a monthly revenue based on a cut based pricing model.</p>
<p>Later on, With group buying in volume, small farmers can also act as key stakeholders. Thus, generating supplies directly to the restaurants.</p>
<p>We are changing the traditional behavior of ordering supplies by restaurants. Our algorithm has increased accuracy by utilizing actionable data.</p>
<p>In higher stages of the supply chain, supermarkets use an ERP system to order supplies from distributors.</p>
<p>Further, for group buying, our end users are volume buyers instead of individual households.</p>
<p>In the future, we also plan to show our demand insights for each crop to the farmers to plan their production accordingly.</p>
<p>If you are interested in this project or want to know more, feel free to contact me.</p>
<p><br /><br /></p>
<nav class="navigation post-navigation" role="navigation">
<h2 class="screen-reader-text">Post navigation</h2>
<div class="nav-links"><div class="nav-previous"><a href="post10.html" rel="prev">How I made my friends workout with me at 5 am</a></div><div class="nav-next"><a href="post12.html" rel="next">How I made a Contact Tracing App to fight COVID-19
</a></div></div>
</nav>
</main><!-- #main -->
</div><!-- #primary -->
<div id="sidebar" class="sidebar">
<div id="sidebar-inner" class="sidebar-inner">
<aside id="nav_menu-3" class="widget widget_nav_menu"><h2 class="widget-title">Pages</h2><div class="menu-primary-container"><ul id="menu-primary" class="menu"><li class="menu-item menu-item-type-custom menu-item-object-custom current-menu-item current_page_item menu-item-7"><a href="index.html">Home</a></li>
<li class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2863"><a href="archives.html">How I made a Natural Disasters detector</a></li>
<li id="menu-item-8" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-8"><a href="about.html">About Pablo</a></li>
</ul></div></aside> <aside id="recent-posts-2" class="widget widget_recent_entries"> <h2 class="widget-title">Recent Posts</h2>
<ul>
<li>
<a href="mainpost.html">How I made a Natural Disasters detector</a>
</li>
<li>
<a href="post2.html">How playing chess professionally has helped me</a>
</li>
<li>
<a href="post3.html">Do you love movies?</a>
</li>
<li>
<a href="post4.html">My experiences giving my first TED talk</a>
</li>
<li>
<a href="post5.html">How I got into a top university</a>
</li>
</ul>
</aside>
</div>
</div>
</div>
</section>
<script type='text/javascript' src='../javascript/nav.js'></script>
<script type='text/javascript' src='../javascript/skip.js'></script>
<script type='text/javascript' src='../javascript/functions.js'></script>
<script type="text/javascript">/* <![CDATA[ */EnlighterJS_Config = {"selector":{"block":"pre.EnlighterJSRAW","inline":"code.EnlighterJSRAW"},"language":"generic","theme":"enlighter","indent":2,"hover":"hoverEnabled","showLinenumbers":true,"rawButton":true,"infoButton":true,"windowButton":true,"rawcodeDoubleclick":false,"grouping":true,"cryptex":{"enabled":false,"email":"mail@example.tld"}};!function(){var a=function(a){var b="Enlighter Error: ";console.error?console.error(b+a):console.log&&console.log(b+a)};return window.addEvent?"undefined"==typeof EnlighterJS?void a("Javascript Resources not loaded yet!"):"undefined"==typeof EnlighterJS_Config?void a("Configuration not loaded yet!"):void window.addEvent("domready",function(){EnlighterJS.Util.Init(EnlighterJS_Config.selector.block,EnlighterJS_Config.selector.inline,EnlighterJS_Config)}):void a("MooTools Framework not loaded yet!")}();;/* ]]> */</script>
</body>
</html>