-
Notifications
You must be signed in to change notification settings - Fork 502
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Familiarize yourself with Ushahidi's technical documentation, the WhatsApp Business API, and any relevant libraries or frameworks planned for the project. #4753
Comments
Hi @dukedanny @CeciliaHinga |
Key Features and Functionalities of Ushahidi Relevant to the Project: WhatsApp Integration: Ushahidi supports WhatsApp integration through Twilio, allowing users to enable their numbers for WhatsApp. Messages from WhatsApp are presented under the "SMS" source in the platform. Version 5 API: Ushahidi has introduced version 5 of its REST API, accommodating new features like Entity Translations and improving the ease of retrieving resources, covering the basics of posts and surveys. Entity Translations: This feature enables deployers to add multiple languages and translate content under surveys, posts, and categories into different languages, enhancing accessibility for regions with multiple languages. Web Monetization and Donations Feature: Ushahidi supports Web Monetization, allowing donations to sectors or grassroots organizations directly through Ushahidi deployments. API Modernization: The platform is undergoing API modernization to rewrite existing endpoints in version 5, restructure the v5 API, and transition from Lumen to Laravel, making it easier to add new features without rewriting the entire codebase. Feedback on Proposed Libraries or Frameworks: Flask/Django for Backend: Both Flask and Django are suitable. Django may offer more out-of-the-box features for complex applications, while Flask is lightweight and suitable for simpler projects. Infobip for WhatsApp API: Infobip libraries are recommended for interacting with the WhatsApp Business API due to detailed API documentation and 24/7 support. Database Interaction and HTTP Requests: SQLAlchemy (for database interactions), Requests (for HTTP requests), and BeautifulSoup (for HTML parsing) are suitable. Redux can be used for managing application state, especially in frontend applications dealing with complex data updates from WhatsApp messages. UX/Security/Testing Considerations: Modular Design for UX: Design user interface modules for adding, removing, and configuring WhatsApp channels in Ushahidi. Implement role-based access control (RBAC) and secure authentication for authorized access to WhatsApp data in Ushahidi. Use the Cypress testing framework to verify the reliability and functionality of components handling WhatsApp Business API interactions in Ushahidi. |
Hello, I'm Darren Odi from Cameroon. After reviewing the relevant documentation, I understand that Ushahidi is a versatile platform for collecting and managing data in crisis areas and international development. It offers features like bulk actions and maps for precise location identification. Considering the popularity of WhatsApp as a communication medium, integrating it into Ushahidi seems essential. Regarding technical specifications, Ushahidi's backend API is built on PHP using Laravel, while the web client uses Angular and the mobile client is developed with Ionic. I suggest using the WhatsApp Cloud API for sending and receiving messages. Based on my testing, Infobip's WhatsApp Business integration works well, making it a suitable choice for our project. By combining Ushahidi's capabilities, the proposed libraries, and the WhatsApp Cloud API, we can enable real-time citizen reporting and make a positive impact in our community. |
Hello, I'm Shalini from India. After going through the relevant documentation the point I conclude are:
|
Hello my name is Ademola, i'm an outreachy appliciant and a full stack web developer. i would love to contribute to this project. have gone through the documentation and this is my summary.
|
Hello, I am Anushka Srivastava from India, an Outreachy applicant. I loved the vision of Ushahidi and I am interested in contributing to this project. Based on my research, Ushahidi is a non-profit technology company founded in Nairobi, Kenya. Ushahidi is working to change how information flows in the world, and it aids communities in turning information into action using crowdsourcing and mapping tools and strengthening these communities. It uses citizen-generated data to develop solutions to currently existing humanitarian issues, like disaster relief, human rights protection, and the protection of democracy, by visualizing the data into maps and graphs. This platform helps bridge the gap between the citizens, bringing transparency to their issues, and the organizations and the government, who use this platform to plan their strategy to respond to these issues effectively. In recent years, WhatsApp has become one of the most widely used tools for interconnecting people and communities and aiding communication between them. Integrating WhatsApp with the Ushahidi platform provides another way to collect data, and this positively impacts the platform's user experience due to the user’s familiarity with WhatsApp’s interface. Integrating WhatsApp into this platform will encourage more users to amplify their voices and share their issues. Current framework:After upgrading from the v3 platform and moving to the Mzima platform, the backend has been upgraded to a PHP web framework named Laravel for enhanced performance, scalability, and productivity. Further, V5 of REST APIs seamlessly extends the capabilities to other web/SMS-based applications. Other backend frameworks involved are Linux systems, Apache, and MySQL/PostgreSQL for database management. Proposed frameworks:
|
Having thoroughly reviewed the documentation provided, I'm impressed by the depth of insight into the Ushahidi platform and its potential for transforming global information dissemination, especially in crisis situations and international development efforts. The proposed integration of WhatsApp into Ushahidi appears to be a strategic move, leveraging the widespread adoption of WhatsApp to enhance real-time citizen reporting capabilities. The technical specifications outlined, including the use of PHP with Laravel for backend development and the consideration of frameworks like Flask/Django, reflect a thoughtful approach to ensuring the project's success. I'm particularly intrigued by the emphasis on utilizing existing technologies like Infobip libraries for seamless WhatsApp integration and the meticulous selection of frameworks for database interaction, HTTP requests, and testing methodologies such as Cypress. These aspects indicate a well-planned strategy aimed at achieving the project's objectives effectively. In summary, the insights gained from the documentation provide a clear understanding of the project's scope and the necessary steps for its implementation. I am optimistic about the potential positive impact this initiative will have on communities worldwide and look forward to contributing to its success. |
Hello everyone, my name is Wanjiru Njuguna, an Outreachy May 2024 applicant, from Nairobi, Kenya. I love what Ushahidi is doing and I am super pumped to start contributing to the project. I have gone through the recommended materials and here is what I gathered. Ushahidi meaning testimony was started in a time of need in its country of origin, Kenya, during the 2008 post-election violence. The tools built and programs run by Ushahidi aim at giving the marginalized a voice. I gathered that the Ushahidi platform is geared towards bridging the information gap between governments and their citizens, as well as people raising awareness and seeking help for themselves in a crisis. Ushahidi is a tool for collecting data, which can be done using mobile apps, social media apps, etc. The tool also manages data by using features such as filters and it also visualizes data, which can be done in many different ways like tables, charts, etc. Key features: The Ushahidi Mzima backend is built on PHP stack, while the client side is a separate app built with Javascript, HTML and CSS. |
Hello, I am Erick Karanja from Kenya and i would like to contribute on the above issue. Ushahidi backend is built on PHP laravel framework.For a given authenticated user to upload data, the user can only upload the data though email, SMSsyc and csv files to their deployment platform. |
Hello @dukedanny I am Tamnjong Larry TabehUshahidi's mission is to strengthen marginalized communities by facilitating the crowdsourcing, management, analysis, and visualization of information. This mission serves as a foundation for the WhatsApp integration project. Ushahidi excels in collecting grassroots data or testimonies, as implied by its name. Ushahidi offers versatile features for data collection through SMS, Email, mobile applications, and the web platform. Integrating WhatsApp into Ushahidi's data collection sources holds the potential to enhance citizen reporting inclusivity. With billions of users and widespread availability on almost all smartphones, WhatsApp can significantly broaden the reach of the Ushahidi platform to local communities. Libraries and framework reviews for WhatsApp integrationFlask/Django:In my review, both Flask and Django showcase excellent possibilities for the API backend, and either of them is a great choice. However, from a practical standpoint, I would recommend incorporating the WhatsApp API as additional functionality within the existing backend built in PHP to avoid managing multiple project backends and keep consistency in the framework and programming languages being used. If, however, the API is intended to be a separate project, I would strongly suggest using Django. My preference for Django is based on my prior experience with it, and its robust features and easy integration possibilities which make it a great choice for constructing a reliable and scalable backend for the WhatsApp integration. UI/UX:The platform dashboard currently includes the Data Source Module General Libraries:After reviewing libraries for state management, database connectivity, testing, and data parsing, the requests library can be effectively utilized in the Django backend to handle external API requests, parsing, and other related tasks. Database connectivity is already seamlessly managed in Django out of the box. It's worth noting that the Ushahidi platform is built on Angular, and we can seamlessly integrate the NgRx state management library WhatsApp Business APIReviewing the WhatsApp Business API and the libraries available for its integration has been a top priority for me, recognizing that selecting the right API is one of the most important factors for effective integration. I examined the Infobip API, which offers promising integration possibilities. Additionally, I explored another WhatsApp integration API, 2Chat API, and found its documentation to be more detailed and easier to understand and implement than that of Infobib. I also looked at the pricing for using both libraries. Furthermore, I took some time to create a WhatsApp Business Account and explored the potential for direct integration from WhatsApp itself, as opposed to relying on third-party integration tools. During this review, I discovered a crucial consideration: integrating directly would exclude the possibility of utilizing chatbots, a feature provided by third-party libraries. This insight highlights the importance of carefully weighing the trade-offs between direct integration and utilizing external tools based on the specific needs of the project. |
Hello, my name is Antony Nyagah from Kenya and I am glad to be contributing to the Ushahidi project. What is Ushahidi?Ushahidi was developed in 2008 as a tool to monitor and map post-election violence in Kenya. The project we will be working on is the Ushahidi Platform project, built with Angular and Laravel, which allows crisis response, human rights reporting, and election monitoring.
A review of the proposed librariesBackend LibrariesDjango vs FlaskDjango and Flask are the proposed libraries to create the backend API. Database connection librariesThere are a few options in regards to making database connections depending on whether Django or Flask is used. WhatsApp Business API and Infobp WhatsApp Business PlatformThe WhatsApp Business API is designed for medium and large businesses to communicate with their customers on a large scale. Its features include:
The Infobp WhatsApp Business Platform is perfect for integrating WhatsApp features into an application due to it's ease of use. It's also used by several reputable companies which is a good sign. Testing librariesIn regards to testing for the backend API, since it is using Django or Flask, Pytest is highly recommended. It has a lot of plugins that make tests easier to write and run. Exploring UX for modular designTo better explore UI/UX design I have taken to reading and implementing the Ensuring authorization of usersThere are many ways to ensure authorization through Django or Flask such as JWT or OAuth2. |
Hello everyone, I'm Pragya Paliwal from India after a thorough review I would like to summarize your understanding. Ushahidi's Mission: Ushahidi is a non-profit tech company focused on empowering marginalized communities by transforming global information flow. It has developed open-source tools to amplify voices during critical situations and foster transparency in various domains. Libraries and Framework from WhatsApp Integration : For Testing: WhatsApp Business API: For UI/UX: Authorization and Security: |
Hello I am Cindy Purity from Kenya and I am honored to contribute to this project. After going through the overview of Ushahidi, this is a summary of my understanding : Ushahidi: A Powerful Tool for Democratizing Information Ushahidi's Mission and Origins: Founded in Nairobi during the 2008 Kenyan election violence, Ushahidi (meaning "testimony" in Swahili) leverages technology to empower individuals and communities. Global Impact: Ushahidi's open-source platform has seen extensive deployment – over 100,000 times across 159 countries, supporting 45 local languages. This has facilitated the collection of 7 million testimonies, reaching nearly 20 million people worldwide. Software Suite: Ushahidi offers a robust suite of open-source software products: Ushahidi Platform: Core platform for data collection, management, and visualization. Ushahidi has fostered a network of six organizations that share a common vision: utilizing technology to empower access to information, improve decision-making, and ultimately transform information flow on a global scale. Ushahidi's Functionality: Ushahidi's core strength lies in its ability to collect, manage, and visualize data. This data can be crowdsourced from anyone, anywhere, and at any time via SMS, email, web reports, mobile applications, and even Twitter. The platform offers robust data management features with filters and workflows, allowing for efficient organization and analysis. Additionally, Ushahidi empowers users to visualize data in various formats, including maps, lists, charts, and tables, through its activity view. Ushahidi stands as a powerful tool for democratizing information, fostering transparency, and empowering communities around the world. |
Key Features and Functionalities of Ushahidi Relevant to the Project: WhatsApp Integration: Ushahidi supports WhatsApp integration through Twilio, allowing users to enable their numbers for WhatsApp. Messages from WhatsApp are presented under the "SMS" source in the platform. Version 5 API: Ushahidi has introduced version 5 of its REST API, accommodating new features like Entity Translations and improving the ease of retrieving resources, covering the basics of posts and surveys. Entity Translations: This feature enables deployers to add multiple languages and translate content under surveys, posts, and categories into different languages, enhancing accessibility for regions with multiple languages. Web Monetization and Donations Feature: Ushahidi supports Web Monetization, allowing donations to sectors or grassroots organizations directly through Ushahidi deployments. API Modernization: The platform is undergoing API modernization to rewrite existing endpoints in version 5, restructure the v5 API, and transition from Lumen to Laravel, making it easier to add new features without rewriting the entire codebase. Feedback on Proposed Libraries or Frameworks: Flask/Django for Backend: Both Flask and Django are suitable. Django may offer more out-of-the-box features for complex applications, while Flask is lightweight and suitable for simpler projects. Infobip for WhatsApp API: Infobip libraries are recommended for interacting with the WhatsApp Business API due to detailed API documentation and 24/7 support. Database Interaction and HTTP Requests: SQLAlchemy (for database interactions), Requests (for HTTP requests), and BeautifulSoup (for HTML parsing) are suitable. Redux can be used for managing application state, especially in frontend applications dealing with complex data updates from WhatsApp messages. UX/Security/Testing Considerations: Modular Design for UX: Design user interface modules for adding, removing, and configuring WhatsApp channels in Ushahidi. Implement role-based access control (RBAC) and secure authentication for authorized access to WhatsApp data in Ushahidi. Use the Cypress testing framework to verify the reliability and functionality of components handling WhatsApp Business API interactions in Ushahidi. |
Hello! My name is Samiksha Jain.I am an Outreachy applicant from India. I have gone through the recommended material and I would like to summarize my understanding. UshahidiUshahidi is a powerful platform designed for crowdsourcing, visualizing, and analyzing data. They're now integrating WhatsApp into their platform, aiming to expand citizen reporting inclusivity. This move leverages WhatsApp's widespread usage and accessibility to reach even more people in local communities. Framework and LibrariesI favor Django for building the Ushahidi integration backend API due to its comprehensive features and ease of use. Django provides built-in tools for tasks like authentication and database management, streamlining development and saving time. Its robustness and scalability make it ideal for handling real-time citizen reporting efficiently. WhatsApp Business APIFor the Ushahidi project, considering its tech stack and ease of implementation, Twilio and Infobip emerge as strong choices among the four service providers (Twilio, Infobip, 360dialog, and Chat API *) for integrating WhatsApp Business API. Both Twilio and Infobip offer comprehensive documentation, robust APIs, and support for various programming languages, making them well-suited for seamless integration with Ushahidi's existing infrastructure. For testingAs a developer, I personally prefer using pytest for testing in the Ushahidi project, especially when Django is chosen for building the backend API. Pytest's simplicity and compatibility with Django make it an ideal choice for ensuring the reliability and robustness of the API. Its clear syntax and extensive plugin ecosystem allow for writing comprehensive tests that cover various aspects of the Django application, from request handling to data validation. With pytest, I can easily organize and run tests, making the testing process efficient and effective. Overall, pytest aligns well with my personal preference for testing Django applications, ensuring the quality and stability of the Ushahidi project. |
My understanding after reviewing Ushahidi is a great company that builds digital tools and run programs to give marginalized people a voice. Their goal is to help people around world to share their voice during a critical situation, to ask for and generate support, and to bring transparency to their issues. Ushahidi has built six open-source software products: the Ushahidi Platform, SMSsync, Crowdmap, SwiftRiver, CrisisNet, and TenFour. Ushahidi mzima platform Backend API is built on PHP stack: as with v3 platform. The mzima platfrom API uses the Laravel framework. The user interface of Ushahidi mzima platform is a separate app with a codebase that has the web client and mobile client in it. The web client is built with Javascript, HTML + CSS using modern Angular 14+ and the Angular material library for styling. The mobile client is built using the Ionic framework.
I would like to use APIs in infobip for sending and receiving messages. Functionalities of APIs in outbound messages and inbound messages are comprehensive. Also, they could be used in authentication. APIs categorized in service management are useful for it. |
My Exploration of Ushahidi Integration with WhatsApp Business API for Effective Crisis ResponseIntroduction:Hello! I'm Ilma Salsabil, an impassioned individual from Bangladesh, presenting a comprehensive plan to integrate Ushahidi, a globally recognized information-sharing platform, with the WhatsApp Business API. This initiative aims to revolutionize crisis response capabilities by empowering marginalized communities to report critical situations and voice their concerns effectively, fostering more efficient and inclusive response mechanisms. Key Features and Functionalities of Ushahidi:Ushahidi, a non-profit technology company, is celebrated for its innovative approach to information dissemination on a global scale. With a strong commitment to empowering marginalized communities, Ushahidi offers a suite of digital tools and programs, including its flagship product, the Ushahidi Platform. This open-source tool is instrumental in human rights activism, crisis response, and transparency efforts, with over 100,000 deployments across 159 countries. Ushahidi's mission revolves around amplifying voices during crises and facilitating effective responses through meticulous data analysis. Selecting the Right Tools:When I set out to build this project, I needed to choose the best tools for the job. Among the options available, I decided to go with Django, a powerful web framework in Python. Here's why: 1. Versatility: 2. Integration with Other Libraries: 3. Cypress Testing Framework: 4. Infobip API Integration: Overall, by selecting Django as the primary framework for this project, I aim to leverage its versatility, integration capabilities, and robust ecosystem to build a reliable and scalable solution for integrating WhatsApp with the Ushahidi platform. This decision aligns with our goal of streamlining development processes and ensuring the seamless integration of various components to deliver a user-friendly and efficient solution. Plan for Adding the WhatsApp Business API:The integration plan is based on utilizing the WhatsApp Cloud API to facilitate communication with WhatsApp Business users. Leveraging libraries from Infobip, the integration will streamline the process of sending and receiving messages through the WhatsApp Business API. To ensure data integrity, stringent permission and authentication procedures will be implemented. API endpoints will be established to process data, handle incoming messages, and facilitate platform connections. Modular design principles will enable customization of WhatsApp channels, enhancing flexibility and scalability. Django and Redux will be employed for application state management, facilitating the handling of complex data changes. Cypress will facilitate end-to-end testing to ensure seamless integration and accurate message handling. |
Hi, my name is Disha Biswas and I am from India.Understanding of Ushahidi's Key Features and Functionalities: Ushahidi, a non-profit technology company, provides digital tools and programs aimed at giving marginalized people a voice and facilitating crisis response, human rights activism, and transparency. The Ushahidi Platform, meaning "testimony" in Swahili, serves as an open-source tool for information collection, visualization, and interactive mapping. Here's a breakdown of its key features and functionalities:
Feedback on Proposed Libraries/Frameworks: In anticipation of the upcoming WhatsApp integration project, I certainly suggest optimizations to Ushahidi's functionality and user experience:
|
Hi, I am Sana Zehra, joining from Pakistan. Introduction to Ushahidi:Ushahidi is a non-profit technology company that empowers marginalized communities by facilitating the collection, visualization, and analysis of data. Originally developed in 2008 to monitor post-election violence in Kenya, Ushahidi has since evolved into a global platform used for crisis response, human rights reporting, and transparency efforts. The Ushahidi Platform:The Ushahidi Platform serves as an open-source tool for collecting, managing, and visualizing data from various sources, including SMS, email, web reports, mobile applications, and twitter. It enables users to report incidents and events, which are then visualized on maps and analyzed for trends and patterns. Integration of WhatsApp into Ushahidi:The project aims to integrate WhatsApp into the Ushahidi platform to expand citizen reporting inclusivity. This involves enabling communication via WhatsApp, processing incoming messages, and integrating WhatsApp channels within the platform. Backend Framework Django vs FlaskBoth Django and Flask are viable options for building the backend API for the Ushahidi integration project. Django, with its batteries-included approach, provides a comprehensive set of features, including an ORM, admin interface, and authentication system. This makes it well-suited for larger, feature-rich projects where rapid development is a priority. Flask, on the other hand, offers a lightweight and flexible micro-framework, making it ideal for simpler, more adaptable web applications. Considering the complexity and scalability requirements of the Ushahidi platform, Django emerges as the preferred choice. Additionally, Django's robust ecosystem and extensive documentation ensure long-term maintainability and support. WhatsApp Business API Integration OptionsInfobip clearly outshines its alternatives when it comes to integrating the WhatsApp Business API into the Ushahidi platform. While Twilio, 360dialog, and Chat API are commendable options, Infobip stands as the optimal choice due to its unparalleled global reach, robust feature set, and proven reliability. Connecting to and Interacting with Databases:If Django is chosen for the backend API development, it comes with a built-in ORM (Object-Relational Mapping) that provides a convenient way to interact with databases. Therefore, there is no need for additional libraries like SQLAlchemy for database interaction when using Django. However, if Flask is chosen instead, SQLAlchemy would be a suitable choice for its robust capabilities in database management. Making HTTP Requests to External APIs:For making HTTP requests to external APIs, the ‘requests’ library in Python is a popular and reliable choice. It provides a simple and elegant API for sending HTTP requests and handling responses, making it well-suited for integrating with external services such as the WhatsApp Business API. Parsing HTML Content for Data Extraction:When WhatsApp Business API will be called by Ushahidi Platform, the content will be received in json format and not HTML. To read json files the backend will use Python’s built-in ‘json’ module and ‘parse’ library will be used to parse the content of the messages. Redux Library for State Management:Redux is a predictable state container for JavaScript applications, commonly used with React for managing application state in a more organized and efficient manner. However, since the frontend of the Ushahidi platform is built using Angular, Redux might not be directly applicable. Angular itself provides robust mechanisms for managing application state, such as RxJS for reactive programming and NgRx for state management in Angular applications. Explore UX for Modular Design:When designing the user experience (UX) for adding, removing, and configuring WhatsApp channels, it's essential to prioritize simplicity and intuitiveness. Each element should have a clear purpose and be easily accessible to users. Implementing modular design principles allows for flexibility and scalability in managing WhatsApp channels within the Ushahidi platform. This involves breaking down the interface into modular components that can be easily rearranged or modified to accommodate different user needs. Explore Authorization Mechanisms:To ensure only authorized users can access and manage WhatsApp data sources within the Ushahidi platform, robust authorization mechanisms are crucial. Role-based access control (RBAC) can be implemented to assign different levels of permissions to users based on their roles within the organization. For example, administrators may have full access to manage WhatsApp channels and messages, while regular users may have limited access for viewing purposes only. Additionally, secure authentication methods, such as OAuth2 (Google authentication), can be employed to verify the identity of users and prevent unauthorized access to sensitive data. Explore Cypress Testing Framework:Cypress is a powerful testing framework for web applications, offering features such as automatic waiting, real-time browser reloads, and easy debugging. When using Cypress to ensure the functionality and reliability of components within the Ushahidi platform, it's essential to define comprehensive test cases covering various scenarios. Cypress allows for both end-to-end testing and unit testing of individual components. By regularly running Cypress tests as part of the development process, any issues or regressions can be identified and addressed promptly. |
Hello, Everyone! Tanya Dwivedi here, an aspiring Outreachy May 2024 applicant from India.I'm thrilled to be part of this vibrant community and genuinely excited about the opportunity to contribute to Ushahidi .After reviewing the recommended materials and documentation, I've gained a profound understanding of Ushahidi's mission and the incredible work it does. Introduction to UshahidiUshahidi, meaning "testimony," emerged during a critical period in its home country, Kenya, amidst the turmoil of the 2008 post-election violence. The tools and programs developed by Ushahidi are dedicated to empowering the marginalized, providing them with a platform to voice their concerns and experiences. ### Key aspects of Ushahidi Platform One of the key strengths of the platform lies in its ability to enable data collection through various channels such as SMS, Email, mobile apps, and web platforms. This versatility allows Ushahidi to serve as a powerful tool for information dissemination in times of need. Now, envision the impact of integrating WhatsApp into this ecosystem – a move that has the potential to significantly extend Ushahidi's reach and inclusivity. ### Technical Specifications: Laravel Framework: Backend Technologies: Frontend Technologies: Ushahidi Integration Backend API: Testing: Project Focus:This Project's Primary responsibility revolves around fixing backend-related issues, addressing challenges, and optimizing the functionality of the backend APIs built with PHP, Laravel, Flask, or Django. User Interface Enhancement:Another significant aspect of our role is to elevate the user interface of WhatsApp integration. Our aim is to make it more user-friendly, convenient, and effective, ensuring that users can leverage WhatsApp seamlessly within the Ushahidi platform. In summary, our role involves addressing backend challenges, working with different technical specifications, and integrating Flask or Django for Integration of WhatsApp. Simultaneously, we aim to refine the user interface of WhatsApp, creating a smoother and more efficient user experience. Excited to contribute to the success of this project! |
I am Anjali Chaturvedi, an Outreachy 2024 applicant. Really excited to be contributing here!Overview
WhatsApp Integration Rationale
Backend Framework: Django
WhatsApp Business API Integration
User Experience (UX) and Design
Authorization and Security
Testing and Quality Assurance
State Management
|
Hello everyone! My name is Fanying Xu, and I'm thrilled to join this project as a contributor. Looking forward to working with all of you! key features and functionalities of Ushahidi relevant to the project.
Ushahidi collect data from multiple channels such as email, SMS, social twitter, and direct submissions. Integrating WhatsApp would significantly enhance its ability to gather real-time information
Ushahidi provides powerful tools for data visualization and analysis. Integrating WhatsApp would enrich the platform's data sources, contributing to more nuanced insights and analysis. Feedback on the Suitability of Proposed Libraries or Frameworks
Flask is lightweight and flexible, making it a good choice for developing a simple, custom backend for the WhatsApp integration with Ushahidi. It allows for the development of microservices with minimal overhead. Django is more suited for larger applications due to its built-in features for development and its ORM (Object-Relational Mapping) capabilities. However, for the WhatsApp integration project, Flask's simplicity and flexibility might be more advantageous.
Infobip offers a comprehensive solution for interacting with the WhatsApp Business API, providing extensive documentation and SDKs for various programming languages. This could significantly streamline the integration process, offering built-in solutions for message templates, session management, and automated responses. Its compatibility with WhatsApp and ease of use make it a suitable choice for the project.
Database: Libraries like SQLAlchemy (for Flask) could provide robust database management capabilities, essential for storing and retrieving data from WhatsApp interactions. HTTP Requests: Requests library in Python offers simplicity and flexibility for making HTTP calls, which will be crucial for interacting with both Ushahidi's and WhatsApp's APIs. Redux for State Management: Considering the project involves backend development, Redux might not be directly applicable unless there's a significant front-end component involved in managing the WhatsApp data within Ushahidi's platform.
Cypress is a good choice for end-to-end testing, particularly if there are web interfaces involved in managing the WhatsApp integration. It can simulate real user actions, ensuring the reliability and functionality of the integration components. |
HELLO, I'M MOSONGO ADINA CONTRIBUTING FROM CAMEROON ABOUT USHAHIDI Ushahidi, a non-profit Kenyan company reshaping information dissemination in the world, birthed from the prevalence of crisis, among other reasons, seeks to give voices to people experiencing critical situations around the world, thereby acting as a medium for ensuring crisis transparency, providing crucial data for effective response, and seeking, and generating support - All in contribution to human rights activist movements and initiatives. LIBRARIES AND FRAMEWORKS In my review, it was confirmed that Flask and Django are suitable frameworks for the development of the backend as it concerns the integration of whatsApp to Ushahidi's platform. However, for maximum maintainability, stability and leveraging power, I would highly recommend leveraging the existing backend framework Laravel to implement the whatsapp integration. It has a thriving ecosystem of third-party libraries, plugins, and extensions that extend the framework's capabilities. Developers can easily leverage these functionalities to add the additional functionality of integrating the whatsapp API, and optimize performance without starting from scratch. UX The platform's client view otpimally allows for the addition of new data sources of which would include whatsapp messages. This functionality would be abstracted, coupled with the modular design of additional components for performing CRUD operations on channels and managing messages and their content. All these made possible through libraries such as Infobip for effective interaction with the integrated whatsapp API. WHATSAPP CLOUD API The whatsapp CLoud API is more scalable when it comes to handling large volunes of messages, has a more simplified integration, more cost-effective and has enhanced features. |
Hi everyone I'm Lahfen Orashus, Rash for short. An Outreachy applicant from Cameroon.Quick and short sumarry Ushahidi platformUshahidi is a non-profit technology company working to change the way information flows in the world, Founded in Nairobi, Kenya. It is an open-source software application that utilizes user-generated reports to collate and map data. It uses the concept of crowdsourcing (Which involves a large group of individuals contributing and or sharing ideas) key features and functionalities of Ushahid
Proposed libraries or frameworks
|
Hi, I'm Zortura from Nigeria and this is my submission. Ushahidi is a tool for collecting, managing, and visualizing data - aiming to change the way information flows in the world, by crowdsourcing information and reports from anyone and anywhere. Ushahidi accepts posts from contributors - which populate the surveys on the platform. There are different types of posts - a report, update, or revision. Data can be collected from anyone, anytime, anywhere by SMS, email, web reports, mobile applications, and twitter. The aim of this project is to enable real-time citizen reporting through WhatsApp. This means accept submissions from users via Whatsapp, and adding WhatsApp as a data source (data provider) within the platform. This would allow WhatsApp messages to appear as a category in their own right (instead of as an SMS source from using Twilio as a WhatsApp gateway service). Provide feedback on the suitability of proposed libraries or frameworks based on your initial review. If the Ushahidi WhatsApp integration is intended to be a separate microservice built for collecting answers from WhatsApp and posting them on an Ushahidi deployment, then a Python implementation would work. Considering that this microservice would mainly be making and receiving HTTP requests (and possibly interacting with a MYSQL/PostgreSQL database), and is not intended to be an extensive standalone application, then Flask, with a few standard libraries (requests, flask-mysqldb, BeautifulSoup) should be sufficient. Flask, being a micro-framework, is more lightweight and suitable for projects such as this, providing flexibility and control, over the more structured and opinionated Django. This should lend itself to optimal performance and Flask would also have a less steep learning curve for current and future contributors. Especially considering the the USSD microservice was built in Flask. Alternatively, this might be implemented in nodejs. Considering that the mzima client is implemented using Javascript, this would allow keeping the codebase to the two languages - PHP/JS on the backend, and JS on the frontend. The WhatsApp Business Platform gives the ability to connect with customers (contributors in this case). The platform consists of three primary APIs:
To send and receive messages to and from WhatsApp users, requires using either the Cloud API or the On-Premises API. The recommended solution is the Cloud API, due to its ease of implementation and low maintenance. Regardless of which API you end up using, you must also use the Business Management API, which is used to manage WhatsApp Business Account and message templates. Infobip can certainly be used to work for the Ushahidi use case. Considering the use cases of Ushahidi and the direction of data flow, the most suitable Infobip conversation category would be the Service category, as messages would be initiated by contributors. Furthermore, the first 1,000 service (user-initiated) conversations per registered WhatsApp Business Account are free. There is also the ability to send WhatsApp surveys (although the three business-initiated conversation categories all require customer opt-in). Infobip provides both PHP and Python SDKs stick with using the Infobip PHP SDK. However, Infobip is a WhatsApp third-party Solution Partner. The Infobip SDKs are intended to be used with an Infobip account, and it is not clear (but unlikely) if they can be used to communicate directly with the WhatsApp business APIs. This means the packages would be interacting with a Infobip hosted WhatsApp API instead of the one hosted by Meta. This is a further layer of abstraction and dependency on another organization that deployment organizations may not appreciate. |
Hello, I'm Labanti from India. This is the summary based on my understanding regarding the Ushahidi platform.
Now, Ushahidi wants to integrate its platform with WhatsApp API to expand citizen reporting. Review of Libraries and Frameworks:
|
Hello, I'm Juanita Cathy. Here's my understanding on the features and functionalities relevant to the project. UshahidiUshahidi for collecting, managing, and visualizing data. It is a non-profit technology company that is dedicated to transforming information flow globally, particularly in crisis areas and international development. The platform offers features such as bulk actions and precise location identification through maps which is why it is good for data collection and management. Whatsapp IntegrationSince WhatsApp as a communication medium is easily available and easy to use, integrating it into the Ushahidi platform seems to be a useful and essential feature for enhancing real-time citizen reporting. By integrating Whatsapp, we can make Ushahidi more reachable by the local communities. The WhatsApp Cloud API presents a seamless solution for sending and receiving messages. Technical Specifications: BackendIn terms of technical specifications, Ushahidi's backend API is built on PHP using Laravel, while the web client utilizes Angular and the mobile client is developed with Ionic. Django can be preferred over Flask for its features and scalability. The integration of Django with PHP ensures consistency. Plus Django also includes authentication, admin interface and ORM. Whatsapp Business Integration - InfobipInfobip's WhatsApp Business integration is highly compatible and reliable, making it a strong candidate for our project. We can make use of its documentation, reach and reliability. By utilizing Ushahidi's existing capabilities, integrating the recommended libraries, and utilizing the WhatsApp Cloud API, we can empower communities to report critical information in real-time, ultimately making a positive impact in our society. DB and User ExperienceTo optimize user experience, the interface should prioritize simplicity and intuitiveness. Implementing features such as drag-and-drop functionality for managing WhatsApp channels, along with clear navigation and informative tooltips. Modular design allows for component rearrangement, enhancing scalability. Dedicated sections for viewing incoming messages and moderating content improve usability and efficiency. For database, Django efficiently handles database interactions, while Flask can utilize SQLAlchemy for database management. Both frameworks offer robust solutions for managing data storage and retrieval. Testing and AuthenticationCypress testing framework ensures the reliability of components handling WhatsApp Business API interactions. Comprehensive test cases cover unit and end-to-end testing, ensuring robust functionality and performance. Along with this, incorporating automated testing tools like Selenium can further enhance the reliability and stability of WhatsApp Business API interactions. Regarding authentication, alongside OAuth2 for user identity verification, implementing multi-factor authentication (MFA) adds an extra layer of security. MFA methods such as SMS-based verification or authenticator apps strengthen user authentication, mitigating the risk of unauthorized access and enhancing overall platform security. State ManagementFor React frontend, Redux library manages application state efficiently. Additionally, state management libraries such as Recoil or MobX for React-based frontend development can offer more tailored solutions. The Whatsapp integration has the potential to make a significant and positive impact in our society, enhancing transparency, accountability, and communication in crisis situations and international development efforts. |
My understanding of Ushahidi and this projectHello, I am Prakriti Maurya. I am excited to be apart of this community and contribute to this creative and impactful project. My summarization of all the documentation and understanding of this project:-
|
USHAHIDI Technical Aspect of Ushahidi WHATSAPP BUSINESS API INFOBIP |
PRE-TASK 1: Cecilia Oche from Nigeria it is said that "information is key" because it shapes ones thought and give us a better understanding of things. Ushahidi has proven the statement to be true based on their work to inform the world. As a non-profit organization, the platform work to changed how information is been passed across the world and give opportunity to people who are hardly heard to speak up using Ushahidi platform. The company has been successful since it inception. the platform has been used to successfully inform about abuse of rights by activist, crisis response etc. in more than 159 countries in 45 local languages. Ushahidi is using technology to change the world for good. Ushahidi app is build with JavaScript, Html, and CSS language, framework like Angular and NodeJs are used, Leaflet is use for mapping. All used to build the frontend. while the backend is built using Linux, Apache/Nginx, MySQL, and PHP language. For better user experience, there are consistence improvement to give user the latest evolving technology. Ushahidi WhatsApp integration project would access more people added to the number of people that have benefitted from the platform and people can get real time information as WhatsApp is used regularly on a daily bases. Looking forward to this project and existed to impact lives through this project. Django is a better framework for this project as it help to secure data and manage content. |
I am Azi Gabriel from Nigeria. Ushahidi is a platform designed to facilitate information sharing during disasters, emergencies, and human rights violations. Its key features and functionalities include:
Regarding the proposed libraries and frameworks:
Overall, the proposed libraries and frameworks align well with Ushahidi's goals and requirements, with Django standing out as a strong choice for backend development given its features and suitability for the project's scale. |
Hello, I am Damilola Moliki-Salman from Nigeria.UshahidiUshahidi is a platform that helps various communities make a difference by difference by making it simple to obtain, compile, and comprehend information from a large number of sources. It’s a platform that helps communities quickly collect reports and map them. This helps everyone, from regular folks to governments, see what's happening and take action to solve problems. It’s a platform that is very beneficial specially for communities with crisis potentials. Libraries and frameworksAlthough both Flask and Django excel in API backend development, each with its own standout features, However, I am proposing Node.js as a suitable framework for building a backend API to integrate with the WhatsApp Business API. Node.js is well-suited for building real-time applications and APIs due to its event-driven, non-blocking I/O model, which aligns well with the requirements of handling asynchronous operations like sending and receiving messages in real-time. DatabaseAfter exploring the features of Ushahidi, I understand that the platform do a lot of data processing. Thus, Ushahidi might consider MySQL database because MySQL is suitable for a WhatsApp API project as it provides a structured and reliable way to store and manage essential data such as user information, message logs, and authentication details. With MySQL's relational database model and ACID compliance, developers can ensure data integrity and consistency, which are crucial for handling sensitive information and performing critical operations. Additionally, MySQL's scalability and strong community support make it suitable for managing moderate to large datasets and accommodating growing user loads. Integrating MySQL with the WhatsApp API through Node.js libraries enable efficient database operations within the backend infrastructure, facilitating smooth communication and interaction with the WhatsApp Business API endpoints. Overall, MySQL plays a vital role in ensuring the robustness, reliability, and scalability of a WhatsApp API implementation. HTTP request librariesAxios is a promise-based HTTP client for the browser and Node.js. It allows you to make HTTP requests to the WhatsApp Business API endpoints easily. |
Hello, my name is Prapti and this is my overview. Understanding UshahidiUshahidi is a non-profit organization that empowers citizens by collecting and visualizing data from various sources like SMS, email, and social media. It promotes transparency and information flow, fostering positive change in society. Ushahidi is currently transitioning from version 3 to Mzima, a new platform built on Laravel (PHP). Integrating WhatsApp for Real-Time ReportingThis project aims to integrate WhatsApp as a data source within Ushahidi. This will enable users to submit reports directly through a familiar and convenient platform, significantly increasing citizen engagement. Imagine:
Technical ConsiderationsIntegrating the WhatsApp API within the existing Ushahidi backend (PHP) offers consistency and simplifies maintenance. However, if the integration is designed as a separate service, Django and Flask are popular Python web frameworks that provide tools and libraries for building web applications quickly and efficiently. Django could be a good choice for its scalability. Ushahidi Version 5 API (RESTful):This API acts as the bridge between Ushahidi's platform and external applications like our proposed WhatsApp integration. It uses the REST (Representational State Transfer) architectural style, allowing for a standardized approach to data access and manipulation. The v5 API offers:
WhatsApp Business Cloud API:This API, directly hosted by Meta (formerly Facebook), is the official gateway for sending and receiving messages through WhatsApp Business Accounts. It provides a secure and reliable way to interact with citizens through WhatsApp within Ushahidi. Here are some key aspects of the Cloud API:
Infobip WhatsApp Business API Libraries:WhatsApp Business Solution Provider (BSP) is an intermediary and provides tools and services for integrating with the WhatsApp Business API. Some popular BSPs include Twilio, MessageBird, and Infobip. While the Cloud API provides the core functionality, Infobip simplifies development. Infobip offers libraries (software development kits) specifically designed to interact with the WhatsApp Business Cloud API. These libraries offer several advantages:
Additional APIs for Backend Functionality:Besides the core APIs mentioned above, several other APIs will likely be used to build the complete Ushahidi WhatsApp integration:
Security
User ExperienceA user-friendly experience encourages citizen engagement and simplifies reporting:
|
Hey everyone, I've had the chance to dive deep into the documentation provided, and I must say, I'm thoroughly impressed by the comprehensive approach outlined for integrating WhatsApp into the Ushahidi platform. The potential impact of this integration on global information dissemination, especially in crisis situations and international development efforts, is truly commendable. The decision to leverage PHP with Laravel for backend development, along with considerations for frameworks like Flask/Django, reflects a strategic approach aimed at ensuring project success. It's great to see a pragmatic approach towards incorporating the WhatsApp API seamlessly into the existing PHP backend, thereby maintaining consistency and avoiding the complexities of managing multiple backend projects. I'm particularly intrigued by the emphasis on utilizing Infobip libraries for WhatsApp integration, as well as the careful selection of frameworks for database interaction, HTTP requests, and testing methodologies like Cypress. These choices demonstrate a well-thought-out strategy focused on achieving the project's objectives effectively. The attention to detail regarding UI/UX design, authorization mechanisms, and the exploration of additional libraries for enhancing functionality further reinforces the commitment to delivering a user-friendly and secure integration. Overall, the insights gleaned from the documentation provide a clear roadmap for the integration process, and I'm excited about the potential positive impact this initiative could have on communities worldwide. I'm eager to contribute to the success of this project and play a part in advancing its mission. Cheers, |
My name's Princy Mangla and I'm from India. I've gone through the technical documentation of Ushahidi, WhatsApp Business API, and everything relevant to the project. Here's my overview. WHO IS USHAHIDI?Ushahidi is a non-profit that develops open-source software for crowdsourcing, monitoring, and visualizing real-time data. It was founded in Kenya in 2008 to map incidents in communities. Users create digital maps to display information. It has been used in crisis response, human rights, election and environmental monitoring, and civic engagement. Ushahidi is transitioning to Mzima, a new platform built on Laravel (PHP). Integration of WhatsApp API for Real-time ReportingAfter going through the documentation, I discovered that integrating the WhatsApp API into the software can enable users to submit reports and receive updates in real-time using the widely-used WhatsApp platform. This integration ensures that a larger audience can access the reporting system, supporting various media types such as text, images, videos, and documents, allowing for detailed and comprehensive reporting. Additionally, users can share their location, which enhances the accuracy of reported incidents. Automation features streamline the reporting process, while integration capabilities enable seamless data integration into existing systems for further analysis and decision-making. Overall, leveraging the WhatsApp API for real-time reporting enhances communication, efficiency, and data quality, facilitating more effective response and management of incidents or events. Ushahidi provides comprehensive technical documentation and support resources to assist users in integrating WhatsApp data sources and leveraging platform features effectively. This includes user manuals, API documentation, and community forums for assistance and collaboration. Ushahidi Version 5 introduces a RESTful API, offering developers a standardized way to interact with the platform programmatically. This API enables seamless integration of Ushahidi's functionality into external applications, allowing users to access, manipulate, and manage data stored within the platform. Using standard HTTP methods, developers can perform operations on resources such as incidents, categories, and users. The API supports authentication and authorization mechanisms for secure access. Overall, the RESTful API empowers developers to build innovative applications and workflows that leverage Ushahidi's capabilities. UX/UIA modular design for WhatsApp channels would involve creating a customizable interface that allows users to add, remove, and configure WhatsApp channels. This design would include modules for viewing incoming messages, managing channel settings, and moderating content. Regarding the suitability of proposed libraries or frameworks:
@dukedanny @CeciliaHinga @Angamanga |
Pre-Task 1 is a bit of prep work & involves the following:
Familiarizing yourself with the existing documentation and APIs relevant to the WhatsApp integration project for Ushahidi: https://documenter.getpostman.com/view/24695099/2s8YszQWLi#edea2038-8abc-4631-b68b-aad5cc6a04ad (FYI: This is for reference only, as improvements are being made to reflect V5)
Review Ushahidi's technical documentation: https://docs.ushahidi.com/platform-user-manual/
Explore the WhatsApp Business API documentation: https://developers.facebook.com/docs/whatsapp/cloud-api
Explore documentation for your planned libraries or frameworks:
Flask or Django frameworks for building the Ushahidi integration backend API.
Review Infobip libraries for interacting with the WhatsApp Business API: https://www.infobip.com/whatsapp-business
Libraries for connecting to and interacting with databases, making HTTP requests to external APIs, parsing HTML content for data extraction, Redux library for managing the application state effectively, especially if dealing with complex data updates from WhatsApp messages.
Explore UX for modular design of elements for adding, removing, and configuring WhatsApp channels, viewing incoming messages, and moderating content
Explore mechanisms that might be needed to ensure only authorized users can access and manage WhatsApp data sources within the Ushahidi platform
Explore Cypress testing framework to ensure functionality and reliability of components
Deliverables due 13.03.2024: In the comment section of #4753
Briefly summarize your understanding of the key features and functionalities of Ushahidi relevant to the project.
Provide feedback on the suitability of proposed libraries or frameworks based on your initial review.
The text was updated successfully, but these errors were encountered: