SlideShare a Scribd company logo
1 of 71
Download to read offline
Fighting Malnutrition
with SMS and Django



            Andy McKay
             clearwind consulting
              andy@clearwind.ca
                     @clearwind
clearwind consulting




Lots of Plone sites
Wrote book
clearwind consulting




Prinicpal of Clear wind
Been doing Python for about 9 years
co-founder of Enfold Systems
clearwind consulting
clearwind consulting




existing project
clearwind consulting




rapidsms
clearwind consulting




Schuyler Erle
  Matt Berg
Adam McKaig
 and others...
clearwind consulting




deployment help?
clearwind consulting




4 days, 32 hours flight...
clearwind consulting
clearwind consulting




and yes this area is home
to a certain famous
family....
clearwind consulting




 health care workers
for community health
care workers in the field

large number of children
to look after

in village (not in clinics)
clearwind consulting
clearwind consulting




                   identify and help
sometimes not easy to spot malnurished kids

maybe no records

let other people know the kid needs help

parents sometimes have enough trouble feeding rest
of the family
clearwind consulting




                            disclaimer
I am not a health care
worked or related to
development

i know the techy bits

can't speak about
efficiency of the program
clearwind consulting




Robbed of vital nutrients as
children, they grow up stunted and
sickly, weaklings in a land that still
runs on manual labor.

http://www.nytimes.com/2006/12/28/world/africa/
28malnutrition.html
clearwind consulting




muac
mid upper arm
circumfrence




                        Matt Berg
clearwind consulting




       muac


children   worker
clearwind consulting




       muac     sms


children   worker     django
clearwind consulting




       muac     sms            sms


children   worker     django         clinic
clearwind consulting




serial

spomskyd
clearwind consulting




serial

spomskyd

http


django route
clearwind consulting
clearwind consulting




                            serial

                            pygsm

                            http

since then spomskyd has
been replaced by pygsm      django route
pygsm do a lot of work
sorting out all those sms
quirks
clearwind consulting




serial
           workers
pygsm

http
         custom ui

django route
         django runserver
clearwind consulting




  Note: test data
clearwind consulting




  Note: test data
clearwind consulting




  Note: test data
clearwind consulting




serial
           workers admins
pygsm

http
         custom ui         admin

django route
         django runserver
clearwind consulting




7654321 > +26 105 d v f




child 26
MUAC 105
diarrheoa
vomiting
fever
clearwind consulting




    7654321 > +26 105 d v f

   7654321 < MUAC> SAM+ Patient requires
IMMEDIATE inpatient care. +26 MADISON, M, F/4 (Sally).
MUAC 105 mm, Diarrhea, Fever, Vomiting
clearwind consulting




    7654321 > +26 105 d v f

   7654321 < MUAC> SAM+ Patient requires
IMMEDIATE inpatient care. +26 MADISON, M, F/4 (Sally).
MUAC 105 mm, Diarrhea, Fever, Vomiting

    7654322 < @jdoe reports +26: SAM+, MUAC 105
mm, Diarrhea, Fever, Vomiting
clearwind consulting




malaria
clearwind consulting




7654321 > mrdt +34 y n f




                malaria rapid
                diagnosis

                child 34
                y has malari
                n has no bednet
                f has a fever
clearwind consulting




    7654321 > mrdt +34 y n f

     7654321 < MRDT> Child +34, MADISON, Molly,
F/12m has MALARIA. Child is less than 3. Please provide
1 tab of Coartem (ACT) twice a day for 3 days
clearwind consulting




              Matt Berg
clearwind consulting




flew back
clearwind consulting




   slept
   moved house
   slept, slept




http://www.flickr.com/photos/chris_gin/2388032929/sizes/l/
clearwind consulting




                          technical details

some of these are based on later work for Malawi

talk about a few of the bits i worked on

interesting
clearwind consulting




rapidsms
clearwind consulting




from rapidsms.message import Message


message.text
message.person   rapidsms api




message.send()
message.respond(text)
message.forward(identity, text=None)
clearwind consulting




decorator for routing
clearwind consulting




# Register a new patient
@keyword(r'new (S+) (S+) ([MF]) ([d-]+)
( D+)?( d+)?( zd+)?')
@authenticated
def new_case (self, message,...[snip]):
       # Do something with the new patient
clearwind consulting




i like urls.py
clearwind consulting




1. see what's going where
2. route to different
                  its a django standard,
                  more friendly for other
                  users

                  easier to change sms
                  without having to
                  change the code
clearwind consulting




urlpatterns = patterns('',
    (r'^new (.*)',
    "apps.mctc.views.joining.new_case"),
)
        despite the name, url
        patterns can be used for
        more than just urls
clearwind consulting




try:
  callback, args, kwargs = resolver.resolve
(message.text.lower())
except Resolver404:
   message.respond(_("Unknown command: %(msg)
s...) % {"msg":message.text[:10]})
clearwind consulting




form handling
clearwind consulting




   full of checking
code, views were full of
checking and validation

in django this is done by
forms
clearwind consulting




parse string into form
clearwind consulting




# NEW 70 1201 M 19102008 123124124

class NewForm(Form):
    child = StringField(valid="(d+)")
    gmc = StringField(valid="(d+)")
    sex = GenderField()
    dob = DateField(format="%m%d%Y")
    contact = StringField(valid="(d+)",
required=False)
clearwind consulting




   class based views
http://www.slideshare.net/simon/
classbased-views-with-django
clearwind consulting




class based view that does repetitive
work
→ validate form
→ process form
→ what to do if it goes wrong
subclassed for different country (eg.
Malawi)
clearwind consulting


class MalawiNew(New):
    @authenticated
    def post_init(self):
        self.form = NewForm
    
    def pre_process(self):
        # malawi specific request
        years, months = years_months(self.form.clean.dob.data.strftime.data)
        if years > 5:
            raise FormFailed, "You have attempted to register child #%s. However, "
                "the date of birth entered is %s. The age of this "
                "child is above 5 years. Please resend SMS with corrected "
                "age." % (self.form.clean.child.data, self.form.clean.dob.data.strftime("%m.
%d.%Y"))
    
    def post_process(self):
        if self.form.clean.contact.data:
            self.data.case.mobile = self.form.clean.contact
    
    def error_already_exists(self):
        # malawi specific code
        return "You have attempted to register child #%s in %s GMC. However, this child
already exists. If this is an error, please resend SMS with correct information. If this
patient is new or a replacement, please use the EXIT command first, then re-register." %
(self.form.clean.child.data, self.data.provider.clinic.name)
clearwind consulting




testing
clearwind consulting




tests really matter
clearwind consulting



                                        brillianty done format

test_05_cancelling = """                allows easy reading by
                                        non technical users

        1234567 > REPORT 70 25.2 95.5 13.5 N
Y
        1234567 < Thank you Mariam Coulibaly
for reporting child #70, weight = 25.2 kg,
height = 95.5 cm, MUAC = 13.5 cm, no oedema,
yes diarrhea...[snip]
         1234567 > CANCEL 70
        1234567 < Report for 70 cancelcel...
[snip]"""
clearwind consulting




     reusable table
http://github.com/andymckay/
django-reusable-tables/tree/master
clearwind consulting




  Note: test data
clearwind consulting




liking it less
clearwind consulting




register("case", Case, [
 ["Id", "ref_id", "{{object.ref_id}}"],
 ["Name", "last_name", "{{object.first_name}}
{{object.last_name}}"],
 ...[snip]
])
clearwind consulting




what challenges?
clearwind consulting




another framework?

      designed for a non-technical audience

      as a techy that can be annoying, eg settings.py

      if you just want to speak to SMS and nothing else, maybe better way to go
clearwind consulting




                       not enough time
schuyler, adam, matt
clearwind consulting




infrastructure

this is the pavement in
the main street
clearwind consulting




We have over 5000 kids in the
system now and counting. It's
been used to catch over 100 kids
with malnutrition and about 400
with malaria.

Matt Berg
clearwind consulting




thank you, django
clearwind consulting




volunteers wanted

 5-10
 Hour projects we would
 love volunteer help with
clearwind consulting




       more info
www.rapidsms.org/rapidresponse
  mberg@ei.columbia.edu
clearwind consulting




questions
            Andy McKay
            clearwind consulting
             andy@clearwind.ca
                    @clearwind

More Related Content

Similar to Fighting Malnutrition with SMS and Django

Innovations™ Magazine October - December 2013
Innovations™ Magazine October - December 2013 Innovations™ Magazine October - December 2013
Innovations™ Magazine October - December 2013 T.D. Williamson
 
The 4 simple rules for effective outsourcing, offshore - Matt Kesby
The 4 simple rules for effective outsourcing, offshore - Matt KesbyThe 4 simple rules for effective outsourcing, offshore - Matt Kesby
The 4 simple rules for effective outsourcing, offshore - Matt KesbyMatt Kesby
 
Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...
Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...
Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...Edureka!
 
Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...
Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...
Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...Andreas Klinger
 
Welcome to your worst day ever webinar notes
Welcome to your worst day ever webinar notesWelcome to your worst day ever webinar notes
Welcome to your worst day ever webinar notesSophiaPalmira1
 
Webinar notes: Welcome to your worst day ever
Webinar notes: Welcome to your worst day everWebinar notes: Welcome to your worst day ever
Webinar notes: Welcome to your worst day everSophia Price
 
Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...
Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...
Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...Catavolt, Inc.
 
Lean Six Sigma Green Belt Training Part 2
Lean Six Sigma Green Belt Training Part 2Lean Six Sigma Green Belt Training Part 2
Lean Six Sigma Green Belt Training Part 2Skillogic Solutions
 
What is the CxC Customer Experience Matrix ClientxClient ph9083503012
What is the CxC Customer Experience Matrix ClientxClient ph9083503012What is the CxC Customer Experience Matrix ClientxClient ph9083503012
What is the CxC Customer Experience Matrix ClientxClient ph9083503012Client X Client
 
Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...
Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...
Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...Edureka!
 
Dan Gould Startonomics LA
Dan Gould Startonomics LADan Gould Startonomics LA
Dan Gould Startonomics LADealmaker Media
 
The Startup Process Dan Gould Startonomics La 2009
The Startup Process   Dan Gould   Startonomics La 2009The Startup Process   Dan Gould   Startonomics La 2009
The Startup Process Dan Gould Startonomics La 2009Andrei Marinescu
 
Building a change approach to live beyond one project
Building a change approach to live beyond one projectBuilding a change approach to live beyond one project
Building a change approach to live beyond one projectRebecca Jackson
 
Blameless system design - annotated
Blameless system design  - annotatedBlameless system design  - annotated
Blameless system design - annotatedDouglas Land
 

Similar to Fighting Malnutrition with SMS and Django (20)

Innovations™ Magazine October - December 2013
Innovations™ Magazine October - December 2013 Innovations™ Magazine October - December 2013
Innovations™ Magazine October - December 2013
 
8 d corrective actions
8 d corrective actions8 d corrective actions
8 d corrective actions
 
The 4 simple rules for effective outsourcing, offshore - Matt Kesby
The 4 simple rules for effective outsourcing, offshore - Matt KesbyThe 4 simple rules for effective outsourcing, offshore - Matt Kesby
The 4 simple rules for effective outsourcing, offshore - Matt Kesby
 
Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...
Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...
Decision Tree Algorithm & Analysis | Machine Learning Algorithm | Data Scienc...
 
Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...
Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...
Applying Lean to existing teams and other lessons learned @ Lean Startup Mach...
 
Welcome to your worst day ever webinar notes
Welcome to your worst day ever webinar notesWelcome to your worst day ever webinar notes
Welcome to your worst day ever webinar notes
 
Webinar notes: Welcome to your worst day ever
Webinar notes: Welcome to your worst day everWebinar notes: Welcome to your worst day ever
Webinar notes: Welcome to your worst day ever
 
Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...
Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...
Applying Real-Time Data to The Eight Discipline Problem Solving Process in Ma...
 
Hacking Customer Development
Hacking Customer DevelopmentHacking Customer Development
Hacking Customer Development
 
Talent Branding
Talent BrandingTalent Branding
Talent Branding
 
Lean Six Sigma Green Belt Training Part 2
Lean Six Sigma Green Belt Training Part 2Lean Six Sigma Green Belt Training Part 2
Lean Six Sigma Green Belt Training Part 2
 
What is the CxC Customer Experience Matrix ClientxClient ph9083503012
What is the CxC Customer Experience Matrix ClientxClient ph9083503012What is the CxC Customer Experience Matrix ClientxClient ph9083503012
What is the CxC Customer Experience Matrix ClientxClient ph9083503012
 
AHD_Scrum_Deployment
AHD_Scrum_DeploymentAHD_Scrum_Deployment
AHD_Scrum_Deployment
 
Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...
Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...
Random Forest Tutorial | Random Forest in R | Machine Learning | Data Science...
 
Dan Gould
Dan GouldDan Gould
Dan Gould
 
Dan Gould Startonomics LA
Dan Gould Startonomics LADan Gould Startonomics LA
Dan Gould Startonomics LA
 
The Startup Process Dan Gould Startonomics La 2009
The Startup Process   Dan Gould   Startonomics La 2009The Startup Process   Dan Gould   Startonomics La 2009
The Startup Process Dan Gould Startonomics La 2009
 
Building a change approach to live beyond one project
Building a change approach to live beyond one projectBuilding a change approach to live beyond one project
Building a change approach to live beyond one project
 
Protect-Biz for non-profits
Protect-Biz for non-profitsProtect-Biz for non-profits
Protect-Biz for non-profits
 
Blameless system design - annotated
Blameless system design  - annotatedBlameless system design  - annotated
Blameless system design - annotated
 

Recently uploaded

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 

Recently uploaded (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 

Fighting Malnutrition with SMS and Django