#graphql apollo client
Explore tagged Tumblr posts
codeonedigest · 2 years ago
Video
youtube
GraphQL Client Tutorial with Examples for API Developers | #graphql Full Video Link -       https://youtube.com/shorts/eIqzlKM6mjoHi, a new #video on #graphql #client #tutorial published on #codeonedigest #youtube channel.  @java @awscloud @AWSCloudIndia @YouTube #youtube @codeonedigest #codeonedigest #graphql #graphql #graphqltutorial #whatisgraphql #graphqlapi #graphqlclient #graphqlapolloclient #graphqlapolloclienttutorial #graphqlapolloclientexample #graphqlapolloclientjava #graphqlapolloclientreact #apolloclientgraphqlreactnative #apolloclientrelay #graphqlrelay #graphqlclientapollo #graphqljavaclientexample #graphqlclienttutorial #graphqlclientpostman #graphqlexampletutorial #graphqldeveloper #graphqlclientside #graphqlclientexample
1 note · View note
praxis-app · 2 years ago
Text
Seeking Developers for Praxis
Praxis is an open source social network with features for collaborative decision making. The goal is to enable working people to build social structures that meet the specific needs of their communities and workplaces.
We're seeking developers with experience in mobile web app development, particularly related to social media or social networking.
Here's the current tech stack:
Next.js
GraphQL
Apollo Client
TypeScript
NestJS
If you have experience in any of the above or just want to learn more about the project, shoot us a message on here or Discord.
Join the Praxis Discord | Follow us on GitHub
57 notes · View notes
codezup · 1 month ago
Text
How to Integrate Vue.js with GraphQL – Boost Data Management
Step-by-Step Guide to Integrating Vue.js with GraphQL Overview This guide will walk you through integrating Vue.js with GraphQL using Apollo Client. By the end, you’ll have a Vue app that fetches and updates data via GraphQL queries and mutations. Prerequisites Node.js: Ensure Node.js (≥14.19) and npm are installed. Vue CLI: Install Vue CLI globally for project setup. GraphQL Server: A…
0 notes
dzinesoniya · 2 months ago
Text
REST API vs. GraphQL: Which Should You Pick for Your Project?
Tumblr media
So, you’re building an app and need to decide how it communicates with the server. You’ve heard of REST and GraphQL, but which one’s better? Let’s break it down in plain terms—no jargon, just real-world pros and cons.
What’s REST API?
Imagine walking into a restaurant with a fixed menu. Each dish (or resource) has its own dedicated page on the menu. That’s REST. It uses standard HTTP methods like GET (to fetch data), POST (to create), PUT (to update), and DELETE (to remove). For example:
GET /users → Returns a list of users.
GET /users/1 → Returns details for user #1.
Why REST works:
Simple to learn: Uses familiar web standards.
Caching-friendly: Browsers and servers can cache data easily.
Structured responses: Data comes in predictable formats like JSON.
But there’s a catch. What if you only need a user’s name and email? REST might send you the entire user profile, including stuff you don’t need (over-fetching). Or, you might need to make multiple requests to get related data (under-fetching).
What’s GraphQL?
GraphQL is like ordering a custom pizza. Instead of a fixed menu, you tell the server exactly what toppings you want. Developed by Facebook, it uses a single endpoint to handle all requests. Here’s how it works:
Send a query specifying the fields you need:
Copy
query {  
  user(id: 1) {  
    name  
    email  
  }  
}  
The server returns only the name and email—nothing extra.
Why GraphQL shines:
No over-fetching: Get only the data you ask for.
One request, multiple resources: Fetch users, their posts, and comments in a single query.
Real-time updates: Subscriptions let you push live data to clients.
But it’s not all roses. GraphQL has a steeper learning curve, and setting up a schema (a blueprint of your data) takes time.
REST vs. GraphQL: The Face-Off
Let’s compare them side by side:
Endpoints
REST: Multiple endpoints (like /users, /posts).
GraphQL: One endpoint to rule them all.
Flexibility
REST: You get what the server gives you.
GraphQL: You ask for exactly what you want.
Performance
REST: Might require 3-4 calls to fetch related data.
GraphQL: Grab everything in one trip.
Error Handling
REST: Uses HTTP status codes (e.g., 404 for “not found”).
GraphQL: Returns a 200 status even for errors, with details in the response body.
Caching
REST: Built-in HTTP caching works out of the box.
GraphQL: Needs extra tools (like Apollo) for caching.
When to Use REST
Stick with REST if:
Your app is simple, with clear data requirements (like a blog).
You want easy integration with third-party tools (payment gateways, social logins).
Caching is critical for speed.
For example, a website development company in India building a standard e-commerce site might choose REST for its simplicity and compatibility with existing tools.
When to Use GraphQL
Go with GraphQL if:
Your app needs complex, nested data (like a social media dashboard).
You want to reduce bandwidth by avoiding over-fetching.
Real-time features (live chat, notifications) are a priority.
A website development company in India working on a dynamic app—say, a food delivery platform with real-time order tracking—might prefer GraphQL for its flexibility.
The Verdict
Choose REST when:
You value simplicity and speed.
Your team is new to APIs.
Your project doesn’t need granular data control.
Choose GraphQL when:
Your app demands efficient, tailored data fetching.
You’re okay with a bit of upfront setup.
Real-time features are non-negotiable.
Final Tip: Not sure? Start with REST. It’s easier to prototype quickly. As your app grows, you can gradually adopt GraphQL for specific features. And hey, some projects even use both—REST for basic tasks and GraphQL for complex ones.
0 notes
learning-code-ficusoft · 3 months ago
Text
Introduction to GraphQL for Full Stack Applications
Tumblr media
What is GraphQL?
GraphQL is a query language for APIs and a runtime for executing those queries by leveraging a type system defined for the data. Developed by Facebook in 2012 and open-sourced in 2015, GraphQL provides a flexible and efficient alternative to REST APIs by allowing clients to request exactly the data they need — nothing more, nothing less.
Why Use GraphQL for Full Stack Applications?
Traditional REST APIs often come with challenges such as over-fetching, under-fetching, and versioning complexities. GraphQL solves these issues by offering:
Flexible Queries: Clients can specify exactly what data they need.
Single Endpoint: Unlike REST, which may require multiple endpoints, GraphQL exposes a single endpoint for all queries.
Strongly Typed Schema: Ensures clear data structure and validation.
Efficient Data Fetching: Reduces network overhead by retrieving only necessary fields.
Easier API Evolution: No need for versioning — new fields can be added without breaking existing queries.
GraphQL vs. REST: Key Differences
Tumblr media
Core Concepts of GraphQL
1. Schema & Types
GraphQL APIs are built on schemas that define the data structure.
Example schema:graphqltype User { id: ID! name: String! email: String! }type Query { getUser(id: ID!): User }
2. Queries
Clients use queries to request specific data.graphqlquery { getUser(id: "123") { name email } }
3. Mutations
Used to modify data (Create, Update, Delete).graphqlmutation { createUser(name: "John Doe", email: "[email protected]") { id name } }
4. Subscriptions
Enable real-time updates using Web Sockets.graphqlsubscription { newUser { id name } }
Setting Up GraphQL in a Full Stack Application
Backend: Implementing GraphQL with Node.js and Express
GraphQL servers can be built using Apollo Server, Express-GraphQL, or other libraries.
Example setup with Apollo Server:javascriptimport { ApolloServer, gql } from "apollo-server"; const typeDefs = gql` type Query { hello: String } `;const resolvers = { Query: { hello: () => "Hello, GraphQL!", }, };const server = new ApolloServer({ typeDefs, resolvers });server.listen().then(({ url }) => { console.log(`Server running at ${url}`); });
Frontend: Querying GraphQL with React and Apollo Client
Example React component using Apollo Client:javascriptimport { useQuery, gql } from "@apollo/client";const GET_USER = gql` query { getUser(id: "123") { name email } } `;function User() { const { loading, error, data } = useQuery(GET_USER); if (loading) return <p>Loading...</p>; if (error) return <p>Error: {error.message}</p>; return <div>{data.getUser.name} - {data.getUser.email}</div>; }
GraphQL Best Practices for Full Stack Development
Use Batching and Caching: Tools like Apollo Client optimize performance.
Secure the API: Implement authentication and authorization.
Optimize Resolvers: Use DataLoader to prevent N+1 query problems.
Enable Rate Limiting: Prevent abuse and excessive API calls.
Conclusion
GraphQL provides a powerful and efficient way to manage data fetching in full-stack applications. By using GraphQL, developers can optimize API performance, reduce unnecessary data transfer, and create a more flexible architecture. 
Whether you’re working with React, Angular, Vue, or any backend framework, GraphQL offers a modern alternative to traditional REST APIs.
WEBSITE: https://www.ficusoft.in/full-stack-developer-course-in-chennai/
0 notes
vetrivelapp · 10 months ago
Text
Understanding and Implementing GraphQL in Mobile Apps
In the dynamic world of mobile app development, integrating robust and efficient APIs is crucial. GraphQL, an open-source data query language developed by Facebook, has emerged as a powerful tool for developers. Unlike traditional REST APIs, GraphQL allows clients to request exactly the data they need, minimizing over-fetching and under-fetching of data. If you're looking to enhance your mobile app development, especially if you're a mobile app development company in Chennai, understanding and implementing GraphQL can provide significant advantages.
Why Choose GraphQL for Mobile Apps
GraphQL’s query language enables clients to fetch only the necessary data, reducing the amount of data transferred over the network. This efficiency is especially beneficial for mobile apps, which often operate on limited bandwidth.
Enhanced Performance
By avoiding multiple round trips to the server, GraphQL improves the performance of your mobile apps. The single request and response structure streamlines data retrieval, enhancing user experience with faster load times.
Strongly Typed Schema
GraphQL uses a strongly typed schema, which helps in defining the structure of the data queries and responses. This schema ensures that both the client and server understand the data format, reducing errors and increasing reliability.
Implementing GraphQL in Mobile Apps
Set Up the Server: Install a GraphQL server. You can use popular libraries like Apollo Server or Express-GraphQL.
Define the Schema: Create your schema by defining the types and the queries your app will support.
Resolvers: Implement resolver functions for your queries to fetch the necessary data from your database or other APIs.
Client Integration: Use a GraphQL client, such as Apollo Client or Relay, to connect your mobile app to the GraphQL server.
Practical Steps
Start by setting up a GraphQL server using tools like Apollo Server or Express-GraphQL. These libraries provide the essential infrastructure for handling GraphQL queries and mutations.
Step 2: Define Your Schema
Define the schema for your API. The schema outlines the types of data and the queries and mutations that your clients can perform. This step is crucial for setting the foundation of your GraphQL implementation.
Step 3: Create Resolvers
Resolvers are functions that handle the data fetching for your queries and mutations. Implement these resolvers to connect your schema to your data sources, whether it's a database, REST API, or other services.
Step 4: Integrate the Client
Finally, integrate a GraphQL client into your mobile app. Apollo Client and Relay are popular choices that provide powerful tools for managing GraphQL queries and state in your app.
Advantages of Using GraphQL
GraphQL simplifies data management by allowing clients to request exactly what they need. This capability reduces the complexity of handling multiple endpoints, making it easier to manage and scale your API.
Real-Time Data with Subscriptions
GraphQL supports real-time data through subscriptions. Subscriptions enable clients to receive updates whenever specific data changes, which is particularly useful for features like notifications or live updates in your mobile app.
Increased Developer Productivity
GraphQL enhances developer productivity by providing a more flexible and efficient way to interact with APIs. The strongly typed schema and powerful query language enable faster development cycles and easier debugging.
Key Considerations
Implement proper security measures when using GraphQL. Ensure that your queries and mutations are properly authenticated and authorized to prevent unauthorized access to sensitive data.
Performance Optimization
Optimize your GraphQL server for performance. Implement caching strategies and use batching techniques to minimize the load on your server and improve response times.
Understanding and implementing GraphQL in mobile apps can significantly enhance the efficiency and performance of your applications. Whether you're a mobile app development company in Chennai or a solo developer, leveraging GraphQL can streamline your data fetching processes and provide a better user experience. For professional assistance in implementing GraphQL and developing high-performance mobile apps, contact Creatah today. Let us help you take your mobile app to the next level!
Contact Creatah now to get started on your next mobile app project!
0 notes
Text
Our Journey From Proprietary To Open Source
Open Sourcing Our Project
After four years of maneuvering through proprietary software, we're excited to announce a significant shift towards open source with the introduction of Enatega - an innovative delivery management software designed to empower entrepreneurs in establishing their own food delivery or related ventures. Enatega brings forth several advantages:
Streamlined Setup: Bid farewell to convoluted processes; Enatega offers a simplified setup procedure. With just a few commands, you can effortlessly have the project up and running on your local system.
Flexibility and Adaptability: Enatega transcends platforms, offering adaptability for testing on both emulators and physical devices. Its cross-platform compatibility ensures seamless functionality across various environments.
Open Source Advantages: Immerse yourself in live demonstrations, comprehensive documentation, and instructional videos elucidating the software's features. With Enatega, navigating through the software landscape becomes uncomplicated. Delve into the source code and kickstart your innovation journey at (https://github.com/ninjas-code-official/food-delivery-multivendor).
Tumblr media
Introduction
Our journey into open source began four years ago as a side project at Ninjas Code, a software development agency. Initially, it aimed to address deficiencies in local food delivery applications, but our vision soon expanded. Aware of our marketing limitations compared to industry giants, we shifted our focus to assisting others in launching their delivery services. While we initially relied on third-party marketplaces for promotion, shifts in marketplace dynamics prompted a swift change in strategy. Leveraging our development expertise, we made the strategic decision to open source our app repository. This move not only gained significant traction without extensive marketing efforts but also cultivated a vibrant community of contributors, providing invaluable technical experience to over 100 startups.
Monetization is crucial for sustaining our operations. Therefore, while we offer the backend as a licensed OPEN API, the backend source code remains proprietary, accessible only through licensing. This acknowledges the need for customization and modifications to precisely tailor the solution to individual use cases, which is not feasible with a one-size-fits-all open-source model.
Unveiling our App Repository: Enatega Multivendor offers a comprehensive solution for food delivery across iOS, Android, and the web, incorporating Amplitude for dashboard analytics. We've prioritized exceptional design for both mobile and dashboard applications, ensuring seamless integration into any meal delivery service. The mobile aspect is crafted using React Native and Expo, while React powers the dashboard panel and customer web app. GraphQL serves both web and mobile functionalities, with the Apollo Client facilitating endpoint querying and state management. The API is constructed with Node and MongoDB. This solution encompasses all necessary features for restaurant or food delivery applications, with meticulous code organization and the elimination of redundant screens for developer convenience.
Furthermore, it includes additional functionalities to enhance the development experience.
Customer Mobile/Web Application:
Verification of email and phone numbers
Using Google, Apple, and Facebook for authentication
Restaurants displayed on the map and home screen based on location
Information about restaurants includes reviews and ratings, hours of operation, delivery schedules, the menu and items offered, as well as the establishment’s location and minimum order
Adding an address using Maps integration and Google Places suggestions
Analytics and reporting on errors with Amplitude and Sentry
For account creation and order status updates, push notifications and emails to users also include global push notifications to all customers
Real-time tracking of Rider and chat with Rider option
Multi-Language and different themes support
Rating and Review features for order
Payment Integration for both PayPal and Stripe
Previous order history and adding favorite restaurants
Options to add different variations of food items and adding notes to restaurant
Pick-up and delivery options with different timings
Options to add different variations of food items and adding notes to restaurant
Vouchers and Tipping option
Searching functionality respective to restaurants and their items
2. Restaurant Application:
Ringer and Push Notification alert for new incoming order  
Time limiter for a restaurant to accept orders and setting time option for meal preparation
Print Invoice option for restaurant
Delivered orders history
Changing restaurant status to online/offline
Order Details with customer information and Order Details
Real-time order receiving updates
3. Rider Application:
Real-time order status change updates
Push Notification and Ringer feature for a new order
Map feature showing markers for delivery address and restaurant address with Google Maps integration
Time limiter for accepting an order and updated time shown for meal preparation time
The distance and anticipated travel time to the destination (Restaurant and Customer) are displayed
Real-time chat with a customer option that includes push notifications for chats received on both ends
History of all orders in progress and new orders
Online delivery fees that are instantly placed into your wallet, the ability to withdraw money, and wallet history
Option of changing a status online/offline of rider
4. Admin Dashboard:
Role-based administration, whereby the administrator has access to all features while the vendor (the owner of the restaurant) only has access to the management of their own establishments
Management of Restaurants, Vendors, Restaurants Section
Defining Zones for Riders and assigning creating zones to Riders
Managing withdrawal requests from riders and commission rates
Configuration of application and global level order status management
Restaurant orders stats and managing their stripe account for receiving commission directly
Restaurants managing their timings and defining delivery bounds where they can operate
Restaurants’ menus feature with complete options to add any variety of food with a discount feature
User, Ratings, Coupon, and tipping option management
Functionalities for better development experience:
To make your life as a developer easier, we made sure the code was neatly organized and got rid of any extra screens. For an even better development experience, it is combined with the following functionalities.
ESLint to provide you with linting capability in Javascript
Prettier for code formatting
Jest for unit testing
Husky to prevent bad commits
What will you have in the Enatega Full App?
Enatega Multivendor Mobile App (iOS and Android)
Enatega Multivendor Rider App (iOS and Android)
Enatega Multivendor Restaurant App (iOS and Android)
Enatega Multivendor Web App
Admin Web Dashboard
Application program interface server
Analytics Dashboard with Expo Amplitude
Error reporting that is Sentry
Enatega Technology Stack
1. Application program interface (API) server
NodeJS
MongoDB
ExpressJS
Stripe
Paypal
Nodemailer
Firebase(for push notifications on web)
Express GraphQL
•         Mongoose(for MongoDB)
2. Web Dashboard
React
GraphQL
Bootstrap
Firebase(for push notification on web)
3. Mobile App
React Native
Expo
Graphql
Sentry
Amplitude
4. Rider App
React Native
Expo
Graphql
Sentry
5. Restaurant App
React Native
Expo
Graphql
Sentry
6. Customer Web App
React
Material UI
GraphQL
Amplitude
Sentry
Firebase(for push notification on web)
Tumblr media
Contribute to Our Open Source Project:
We're actively seeking contributors to enhance our project. With a tech stack that meets market demands, it offers an excellent opportunity for involvement. Join our Discord community for questions and collaboration: Discord Link.
Contributions can be made by creating issues or Pull Requests (PRs). Simply fork the repository, create a branch, and request assignment to specific issues labeled as good first issues. Upon submission, our development team will review and merge your PR, recognizing you as a contributor.
Thank you for your interest, and we look forward to your contributions to our project!
0 notes
farrahuzzi · 1 year ago
Text
 Enatega releases App Repo as Open Source
Introduction
After a 4 year journey through the world of proprietary software, we're excited to announce that we've taken the big leap into open source with the release of Enatega(enatega.com) - a delivery management software that is made to launch your own food delivery or any other relevant business. Here is a quick rundown of what Enatega offers: * Quick and easy setup: We don’t have any complicated workflows and toolings you can simply run some few commands to run the project locally on your system.
* Infrastructure and flexibility: Enatega works cross platform across and gives you the freedom to test it easily on your emulators or physical devices that you already have. * Open source goodness: Enatega offers live demos, documentations and videos for the product in action so you don’t have to worry about figuring out everything yourself. You can find the source code and get started here: (https://github.com/ninjas-code-official/food-delivery-multivendor) Our Journey to Open Source
Tumblr media
We started Enatega 4 years ago. Initially it was our side project at Ninjas Code(ninjascode.com) being a software development agency we wanted to launch something in the local market while providing software development services side by side. We were planning to compete with a local food delivery app company that we thought had some problems and we can address those problems with our product more easily. Being a developer savvy company we didn’t have the marketing expertise needed to compete with the giants in our niche. We quickly realized this and pivoted to helping others launch their own delivery service instead. Initially we relied on 3rd party marketplaces for marketing purposes. And it was working well. Our product was good enough to sell well relative to other products out there in the market, unfortunately things fell apart in the marketplace and it had to close down. We had to pivot again and quickly, we needed a solution for marketing having team expertise in development we found open sourcing our App Repo as the best solution. We did that and now we are getting a lot of traction without much paid marketing or doing any marketing acrobatics. The value that we feel that we are providing is helping other contributors by giving them visibility on the project as well as giving them actual technical experience by working on a project that is being used by more than 100+ startups. We do need to monetise and keep the business running with some business model in place, so we are providing the backend as a license while it is an OPEN API but the source code for the backend is kept proprietary which is only available after purchasing the license. We do understand that the majority of the enterprises completely open source their projects while trying to provide a self hosted solution as a SAAS based product. But for our business model that won't be possible since even after purchasing the product the solution might not be implementable as it is and might need some modifications or customisations for deploying it for their use case exactly. 
App Repo unveiled
Enatega Multivendor is a full-featured Multivendor food delivery solution for iOS, Android, and the Web that uses Amplitude for dashboard and analytics. We have ensured that you receive a good mobile and dashboard application design as well as a complete solution that will allow you to quickly integrate this app into any meal delivery service.
The mobile end of this application is built utilizing React Native and Expo. React has been used for the dashboard panel and customer web app. Graphql is utilized by web and mobile. The Apollo Client is used for endpoint querying and state management. Node with MongoDB are used to create the API.
It has all the features that you will ever need to implement this application for any restaurant or some kind of food delivery application. Some of the features that are included in it are:
To make your life as a developer easier, we made sure the code was neatly organized and got rid of any extra screens. For an even better development experience, it is combined with the following functionalities.
Customer Mobile/Web Application:
Verification of email and phone numbers
Using Google, Apple, and Facebook for authentication
Restaurants displayed on the map and home screen based on location
Information about restaurants includes reviews and ratings, hours of operation, delivery schedules, the menu and items offered, as well as the establishment’s location and minimum order
Adding an address using Maps integration and Google Places suggestions
Analytics and reporting on errors with Amplitude and Sentry
For account creation and order status updates, push notifications and emails to users also include global push notifications to all customers
Real-time tracking of Rider and chat with Rider option
Multi-Language and different themes support
Rating and Review features for order
Payment Integration for both PayPal and Stripe
Previous order history and adding favorite restaurants
Options to add different variations of food items and adding notes to restaurant
Pick-up and delivery options with different timings
Options to add different variations of food items and adding notes to restaurant
Vouchers and Tipping option
Searching functionality respective to restaurants and their items
Restaurant Application:
Ringer and Push Notification alert for new incoming order   
Time limiter for a restaurant to accept orders and setting time option for meal preparation
Print Invoice option for restaurant
Delivered orders history
Changing restaurant status to online/offline
Order Details with customer information and Order Details
Real-time order receiving updates
Rider Application:
Real-time order status change updates
Push Notification and Ringer feature for a new order
Map feature showing markers for delivery address and restaurant address with Google Maps integration
Time limiter for accepting an order and updated time shown for meal preparation time
The distance and anticipated travel time to the destination (Restaurant and Customer) are displayed
Real-time chat with a customer option that includes push notifications for chats received on both ends
History of all orders in progress and new orders
Online delivery fees that are instantly placed into your wallet, the ability to withdraw money, and wallet history
Option of changing a status online/offline of rider
Admin Dashboard:
Role-based administration, whereby the administrator has access to all features while the vendor (the owner of the restaurant) only has access to the management of their own establishments
Management of Restaurants, Vendors, Restaurants Section
Defining Zones for Riders and assigning creating zones to Riders
Managing withdrawal requests from riders and commission rates
Configuration of application and global level order status management
Restaurant orders stats and managing their stripe account for receiving commission directly
Restaurants managing their timings and defining delivery bounds where they can operate
Restaurants’ menus feature with complete options to add any variety of food with a discount feature
User, Ratings, Coupon, and tipping option management
Functionalities for better development experience:
To make your life as a developer easier, we made sure the code was neatly organized and got rid of any extra screens. For an even better development experience, it is combined with the following functionalities.
ESLint to provide you with linting capability in Javascript
Prettier for code formatting
Jest for unit testing
Husky to prevent bad commits
What will you have in the Enatega Full App?
Enatega Multivendor Mobile App (iOS and Android)
Enatega Multivendor Rider App (iOS and Android)
Enatega Multivendor Restaurant App (iOS and Android)
Enatega Multivendor Web App
Admin Web Dashboard
Application program interface server
Analytics Dashboard with Expo Amplitude
Error reporting that is Sentry
Enatega Technology Stack
Application program interface (API) server
NodeJS
MongoDB
ExpressJS
Stripe
Paypal
Nodemailer
Firebase(for push notifications on web)
Express GraphQL
Mongoose(for MongoDB)
Web Dashboard
React
GraphQL
Bootstrap
Firebase(for push notification on web)
Mobile App
React Native
Expo
Graphql
Sentry
Amplitude
Rider App
React Native
Expo
Graphql
Sentry
Restaurant App
React Native
Expo
Graphql
Sentry
Customer Web App
React
Material UI
GraphQL
Amplitude
Sentry
Firebase(for push notification on web)
We actively seek contributors to enrich our project. With a tech stack aligned with market demands, it presents an excellent opportunity for involvement. Join our Discord community for queries and collaboration: Discord Link (https://discord.com/invite/9tQrqXjW)
Contributions can be made by creating issues or Pull Requests (PRs). Simply fork the repository, create a branch, and request assignment to specific issues labeled as good first issues. Upon submission, our development team will review and merge your PR, acknowledging you as a contributor.
Thank you for your interest, and we eagerly anticipate your contributions to our project.
0 notes
enatega · 1 year ago
Text
We Made an UberEats Clone and Made the App Repo Open Source
Tumblr media
Having spent four years navigating the world of proprietary software, we are thrilled to announce our shift to open source with the launch of Enatega (enatega.com) – a delivery management software tailored specifically for entrepreneurs venturing into food delivery or similar industries.
Here's a concise overview of what Enatega offers:
1. Streamlined Setup: Bid farewell to complex workflows and tools. Enatega simplifies the setup process, requiring just a few commands to run the project locally on your system.
2. Flexible Infrastructure: Enatega seamlessly operates across various platforms, providing unmatched flexibility. Whether testing on emulators or physical devices, Enatega effortlessly adapts to your setup, allowing for customization to meet your specific needs.
3. Embracing Open Source: Enatega wholeheartedly embraces the principles of open source, offering users access to live demos, comprehensive documentation, and instructional videos. This wealth of resources ensures that users can confidently explore and leverage the software's full capabilities without feeling overwhelmed.
You can find the source code and get started here: (https://github.com/ninjas-code-official/food-delivery-multivendor)
Our Journey to Open Source:
Tumblr media
Four years ago, we set out on a journey to develop Enatega as a side project at Ninjas Code (ninjascode.com), our software development agency. Initially, our aim was to compete with a local food delivery app company by leveraging our software development expertise to address identified shortcomings. However, as we realized our lack of marketing skills in challenging industry giants, we shifted our focus to helping others launch their own delivery services. While we initially relied on third-party marketplaces for marketing, unforeseen circumstances led to the closure of the marketplace, marking the end of this phase of our journey.
Recognizing the need for a swift pivot, we utilized our development expertise and opted to open-source our App Repo to overcome our marketing challenges. Since then, we've observed significant traction without extensive paid marketing. Our value proposition extends beyond the product itself; we offer visibility to other contributors and provide tangible technical experience by involving them in a project utilized by over 100 startups.
Understanding the importance of monetization, we devised a business model where the backend is offered as a licensed product, while the API remains open. We acknowledge that many enterprises choose to completely open-source their projects, but our business model requires customization and may not be feasible otherwise.
App Repo Unveiled:
Enatega Multivendor provides a comprehensive solution for multi-vendor food delivery accessible on iOS, Android, and the Web. With Amplitude managing the dashboard and analytics, we prioritize outstanding designs for both mobile and dashboard applications, aiming to ensure smooth integration into any meal delivery service.
The mobile component is developed using React Native and Expo, while React is utilized for crafting the dashboard panel and customer web app. GraphQL is employed across both web and mobile platforms, with the Apollo Client managing endpoint querying and state management. Node, alongside MongoDB, drives the creation of the API.
Enatega Multivendor boasts a well-organized codebase, simplifying development by eliminating unnecessary screens, and incorporates additional functionalities to enhance capabilities for restaurant or food delivery service applications.
Customer Mobile/Web Application:
Verification of email and phone numbers
Using Google, Apple, and Facebook for authentication
Restaurants displayed on the map and home screen based on location
Information about restaurants includes reviews and ratings, hours of operation, delivery schedules, the menu and items offered, as well as the establishment’s location and minimum order
Adding an address using Maps integration and Google Places suggestions
Analytics and reporting on errors with Amplitude and Sentry
For account creation and order status updates, push notifications and emails to users also include global push notifications to all customers
Real-time tracking of Rider and chat with Rider option
Multi-Language and different themes support
Rating and Review features for order
Payment Integration for both PayPal and Stripe
Previous order history and adding favorite restaurants
Options to add different variations of food items and adding notes to restaurant
Pick-up and delivery options with different timings
Options to add different variations of food items and adding notes to restaurant
Vouchers and Tipping option
Searching functionality respective to restaurants and their items
Restaurant Application:
Ringer and Push Notification alert for new incoming order   
Time limiter for a restaurant to accept orders and setting time option for meal preparation
Print Invoice option for restaurant
Delivered orders history
Changing restaurant status to online/offline
Order Details with customer information and Order Details
Real-time order receiving updates
Rider Application:
Real-time order status change updates
Push Notification and Ringer feature for a new order
Map feature showing markers for delivery address and restaurant address with Google Maps integration
Time limiter for accepting an order and updated time shown for meal preparation time
The distance and anticipated travel time to the destination (Restaurant and Customer) are displayed
Real-time chat with a customer option that includes push notifications for chats received on both ends
History of all orders in progress and new orders
Online delivery fees that are instantly placed into your wallet, the ability to withdraw money, and wallet history
Option of changing a status online/offline of rider
Admin Dashboard:
Role-based administration, whereby the administrator has access to all features while the vendor (the owner of the restaurant) only has access to the management of their own establishments
Management of Restaurants, Vendors, Restaurants Section
Defining Zones for Riders and assigning creating zones to Riders
Managing withdrawal requests from riders and commission rates
Configuration of application and global level order status management
Restaurant orders stats and managing their stripe account for receiving commission directly
Restaurants managing their timings and defining delivery bounds where they can operate
Restaurants’ menus feature with complete options to add any variety of food with a discount feature
User, Ratings, Coupon, and tipping option management
Functionalities for better development experience: To make your life as a developer easier, we made sure the code was neatly organized and got rid of any extra screens. For an even better development experience, it is combined with the following functionalities.
ESLint to provide you with linting capability in Javascript
Prettier for code formatting
Jest for unit testing
Husky to prevent bad commits
What will you have in the Enatega Full App?
Enatega Multivendor Mobile App (iOS and Android)
Enatega Multivendor Rider App (iOS and Android)
Enatega Multivendor Restaurant App (iOS and Android)
Enatega Multivendor Web App
Admin Web Dashboard
Application program interface server
Analytics Dashboard with Expo Amplitude
Error reporting that is Sentry
Enatega Technology Stack
Application program interface (API) server
NodeJS
MongoDB
ExpressJS
Stripe
Paypal
Nodemailer
Firebase(for push notifications on web)
Express GraphQL
Mongoose(for MongoDB)
Web Dash​​​​​board
React
GraphQL
Bootstrap
Firebase(for push notification on web)
Mobile App
React Native
Expo
Graphql
Sentry
Amplitude
Rider App
React Native
Expo
Graphql
Sentry
Restaurant App
React Native
Expo
Graphql
Sentry
Customer Web App
React
Material UI
GraphQL
Amplitude
Sentry
Firebase(for push notification on web)
Contribute to our Open Source Project
We're excited to welcome contributors like yourself, whose input can propel our project forward. Our technology stack is in high demand, presenting an exceptional opportunity for involvement. Feel free to join our vibrant Discord community for any questions: https://discord.gg/9tQrqXjW.
There are two ways to contribute to the project:
1. Issue Creation: Identify areas for improvement or propose new features by creating issues.
2. Pull Request Submission (PRs): Start by forking the repository, creating a local branch, and requesting assignment of specific issues. Some issues are marked as "good first issues" to help newcomers initiate their contributions.
Thank you for dedicating time to read our blog. We eagerly look forward to your valuable contributions to the project.
0 notes
hammadreh · 1 year ago
Text
Enatega releases App Repo as Open Source
Tumblr media
Introduction
After immersing ourselves in proprietary software for four years, we're thrilled to announce our venture into the open-source arena with the launch of Enatega (enatega.com) - a delivery management software crafted to kickstart your food delivery or similar ventures.
Here's a quick overview of what Enatega brings to the table:
Effortless Setup: We've streamlined the setup process, enabling you to run the project locally on your system with just a few simple commands.
Robust Infrastructure and Flexibility: Enatega is compatible across platforms, allowing seamless testing on emulators or physical devices you already possess, providing unparalleled adaptability.
Open Source Benefits: With Enatega, you have access to live demos, documentation, and instructional videos, eliminating the complexity of navigating everything alone.
For those eager to dive in, you can find the source code and commence your journey here: github link: github link
Our Journey to Open Source:
Tumblr media
Four years back, we embarked on the Enatega project as a side venture within Ninjas Code ninjascode.com), our software development agency. Initially, our goal was to penetrate the local market while also offering software development services concurrently. Our inspiration stemmed from the ambition to challenge a local food delivery app company, confident in our ability to address inherent issues more effectively with our product.
Despite our proficiency in software development, we lacked the marketing expertise necessary to compete with industry giants. Recognizing this limitation, we promptly shifted focus to assisting others in launching their own delivery services.
At the outset, we relied on third-party marketplaces for marketing, which proved successful. Our product surpassed others in the market. However, unforeseen circumstances led to the closure of the marketplace, prompting another strategic shift. Leveraging the expertise of our development team, we identified open-sourcing our App Repo as the optimal marketing solution. This decision has since gained considerable traction without the need for extensive paid marketing efforts.
We believe our value proposition extends beyond mere marketing. By offering visibility to other contributors and providing them with the opportunity to gain practical technical experience through collaboration on a project utilized by over 100 startups, we contribute to the broader development community.
While endeavoring to sustain our business's viability, we recognize the necessity for a monetization strategy. Hence, we offer the backend as a licensed product, keeping the backend source code proprietary. Although the backend operates as an open API, access to the source code is limited to purchasers of the license.
Unveiling of the App Repository
Enatega Multivendor offers a comprehensive Multivendor food delivery solution for iOS, Android, and the Web, seamlessly integrating Amplitude for dashboard and analytics. Our focus is on delivering outstanding mobile and dashboard application designs, coupled with a complete solution, ensuring smooth integration into any meal delivery service.
The mobile aspect of this application is built using React Native and Expo, while React powers the dashboard panel and customer web app. Graphql serves as the backbone for both web and mobile interfaces, with the Apollo Client handling endpoint querying and state management. Node with MongoDB constitutes the backend API.
Incorporating all the essential features necessary for any restaurant or food delivery application, this solution streamlines development by efficiently organizing code and eliminating redundant screens. Moreover, it is enriched with additional functionalities to further enhance the development experience.
Customer Mobile/Web Application:
Verification of email and phone numbers
Using Google, Apple, and Facebook for authentication
Restaurants displayed on the map and home screen based on location
Information about restaurants includes reviews and ratings, hours of operation, delivery schedules, the menu and items offered, as well as the establishment’s location and minimum order
Adding an address using Maps integration and Google Places suggestions
Analytics and reporting on errors with Amplitude and Sentry
For account creation and order status updates, push notifications and emails to users also include global push notifications to all customers
Real-time tracking of Rider and chat with Rider option
Multi-Language and different themes support
Rating and Review features for order
Payment Integration for both PayPal and Stripe
Previous order history and adding favorite restaurants
Options to add different variations of food items and adding notes to restaurant
Pick-up and delivery options with different timings
Options to add different variations of food items and adding notes to restaurant
Vouchers and Tipping option
Searching functionality respective to restaurants and their items
Restaurant Application:
Ringer and Push Notification alert for new incoming order   
Time limiter for a restaurant to accept orders and setting time option for meal preparation
Print Invoice option for restaurant
Delivered orders history
Changing restaurant status to online/offline
Order Details with customer information and Order Details
Real-time order receiving updates
Rider Application:
Real-time order status change updates
Push Notification and Ringer feature for a new order
Map feature showing markers for delivery address and restaurant address with Google Maps integration
Time limiter for accepting an order and updated time shown for meal preparation time
The distance and anticipated travel time to the destination (Restaurant and Customer) are displayed
Real-time chat with a customer option that includes push notifications for chats received on both ends
History of all orders in progress and new orders
Online delivery fees that are instantly placed into your wallet, the ability to withdraw money, and wallet history
Option of changing a status online/offline of rider
Admin Dashboard:
Role-based administration, whereby the administrator has access to all features while the vendor (the owner of the restaurant) only has access to the management of their own establishments
Management of Restaurants, Vendors, Restaurants Section
Defining Zones for Riders and assigning creating zones to Riders
Managing withdrawal requests from riders and commission rates
Configuration of application and global level order status management
Restaurant orders stats and managing their stripe account for receiving commission directly
Restaurants managing their timings and defining delivery bounds where they can operate
Restaurants’ menus feature with complete options to add any variety of food with a discount feature
User, Ratings, Coupon, and tipping option management
Functionalities for better development experience:
To make your life as a developer easier, we made sure the code was neatly organized and got rid of any extra screens. For an even better development experience, it is combined with the following functionalities.
ESLint to provide you with linting capability in Javascript
Prettier for code formatting
Jest for unit testing
Husky to prevent bad commits
What will you have in the Enatega Full App?
Enatega Multivendor Mobile App (iOS and Android)
Enatega Multivendor Rider App (iOS and Android)
Enatega Multivendor Restaurant App (iOS and Android)
Enatega Multivendor Web App
Admin Web Dashboard
Application program interface server
Analytics Dashboard with Expo Amplitude
Error reporting that is Sentry
Enatega Technology Stack
Application program interface (API) server
NodeJS
MongoDB
ExpressJS
Stripe
Paypal
Nodemailer
Firebase(for push notifications on web)
Express GraphQL
Mongoose(for MongoDB)
Web Dashboard
React
GraphQL
Bootstrap
Firebase(for push notification on web)
Mobile App
React Native
Expo
Graphql
Sentry
Amplitude
Rider App
React Native
Expo
Graphql
Sentry
Restaurant App
React Native
Expo
Graphql
Sentry
Customer Web App
React
Material UI
GraphQL
Amplitude
Sentry
Firebase(for push notification on web)
Join Our Open Source Project
Tumblr media
We're actively seeking contributors like yourself to join our open-source project. Your involvement could significantly advance our development efforts. Our technology stack is designed to meet high market demand, providing you with a valuable opportunity to make a meaningful impact.
Join our vibrant community on Discord, where you can ask questions and engage with fellow contributors: Discord link
There are two primary ways you can contribute to our project:
1. Creating issues
2. Submitting PRs for existing issues
Our development team will thoroughly review your PR and offer feedback. Upon merging, you'll be recognized as a contributor, with your name automatically added to our contributor list.
Thank you for investing your time in reading our blog. We eagerly anticipate your contributions to our project.
0 notes
tecforfun · 2 years ago
Text
How to integrate Apollo client with React in no time
If you have some experience working with GraphQL servers and GraphQL query language, you must have used GraphQL playgrounds on localhost or online. On these playgrounds, you can test your GraphQL queries and mutations against the GraphQL server to fetch data and make changes. You can also use variables to make these queries and mutations dynamic. So, the GraphQL playground is running on the…
View On WordPress
0 notes
codeonedigest · 2 years ago
Text
GraphQL Client Side & Server-Side Components Explained with Examples for API Developers
Full Video Link - https://youtube.com/shorts/nezkbeJlAIk Hi, a new #video on #graphql #mutation published on #codeonedigest #youtube channel. @java @awscloud @AWSCloudIndia @YouTube #youtube @codeonedigest #graphql #graphqlresolver #graphqltutorial
 Let’s understand the GraphQL components and the way they communicate with each other. The entire application components can be categories in to server side and client-side components. Server-side Components – GraphQL server forms the core component on the server side and allows to parse the queries coming from GraphQL client applications. Apollo Server is most commonly used implementation of…
Tumblr media
View On WordPress
0 notes
technsavi · 2 years ago
Text
Use of fetchMore UseQuery in nextJs
Here is an implementation of using the Pagination of Apollo Client in a convenient way. The fetchMore function of ApolloClient provides us an option to request the data with updated query parameters and to merge the results of the previous and latest responses. About fetchMore function – Pagination always involves sending follow-up queries to your GraphQL server to obtain additional pages of…
Tumblr media
View On WordPress
0 notes
codezup · 1 month ago
Text
From REST to GraphQL: Enhancing Vue.js Apps with Modern API
1. Introduction 1.1 Brief Explanation REST has been the backbone of web APIs for years, but GraphQL offers a more flexible and efficient way to fetch data. This tutorial will guide you through transitioning your Vue.js app from REST to GraphQL, enhancing performance and developer experience. 1.2 What You Will Learn Transitioning a Vue app from REST to GraphQL Setting up Apollo Client and…
0 notes
improveyourcodingskills · 2 years ago
Text
Send GraphQL Queries With the Fetch API (Without Apollo, URQL)
0 notes
mansoorahmed-stuff · 3 years ago
Link
Apollo Client may face a variety of errors when executing operations on the GraphQL server. It supports us to handle these errors.
0 notes