java外卖送餐系统_制作送餐应用
java外卖送餐系统
However, while many businesses were negatively impacted, some areas of the economy have benefited from these changes. One of the areas that has possibly benefited the most is the online delivery industry. This is primarily due to the changes that the governments around the world are mandating of their citizens.
但是,尽管许多企业受到了负面影响,但经济的某些领域已从这些变化中受益。 在线交付行业可能是受益最大的领域之一。 这主要是由于世界各国政府对公民的强制性变化。
自我隔离的影响 (The Impact of Self Isolation)
Citizens around the world have been forced to self-isolate. Fortunately, today’s technologies allow many employees to work remotely but there is still a significant financial impact to those individuals that are unable to work from home. Added to these new stresses are others.
世界各地的公民被迫自我隔离。 幸运的是,当今的技术允许许多员工进行远程工作,但是对于那些无法在家工作的个人而言,仍然会产生重大的财务影响。 除了这些新的压力之外,还有其他压力。
With a requirement to stay at home and isolate, many people have taken to online platforms to make their purchases. These platforms were only scoped for a specific load and capacity however and they are struggling to satisfy the increased demand.
由于需要呆在家里和与外界隔离,许多人开始使用在线平台进行购买。 这些平台仅适用于特定的负载和容量,并且正努力满足不断增长的需求。
At NIX we understand these stresses. We have actually built an online food delivery platform before the pandemic and we know what is required to ensure your solution is suitable.
在NIX,我们了解这些压力。 在大流行之前,我们实际上已经建立了一个在线食品交付平台,并且我们知道确保您的解决方案合适所需要的内容。
NIX解决方案 (The NIX Solution )
We had the pleasure of working with one of the largest foods and delivery marketplaces in Europe. They are an Uber partner and offer web and mobile ordering from local restaurants and food businesses in many different cities. Users have a very straightforward flow, but it gets a bit more complicated for the admins of the system.
我们很高兴与欧洲最大的食品和外卖市场之一合作。 他们是优步(Uber)的合作伙伴,并提供来自许多不同城市的当地餐馆和食品企业的Web和移动订购。 用户的流程非常简单,但是对于系统管理员而言,流程变得有些复杂。
From a user’s point of view, the application is very simple to use. There are some key criteria that were provided that ensured this simplicity.
从用户的角度来看,该应用程序非常易于使用。 提供了一些关键标准来确保这种简单性。
-
Filtering and Search – the app provided geolocation services which allowed users to quickly find a local restaurant in close proximity.
过滤和搜索 -该应用程序提供了地理位置服务,使用户可以快速找到附近的当地餐馆。
-
Easy to use interface – menu names and categories are simple and easy to understand. Users can quickly intuit where they need to go within the app.
易于使用的界面 –菜单名称和类别非常简单易懂。 用户可以快速了解他们需要进入应用程序的位置。
-
Tracking and Details – complete transaction flow is provided to the user. They know where their dish is in the process from placing the order, to preparation to delivery.
跟踪和详细信息 –向用户提供完整的交易流程。 他们知道从下订单到准备到交付过程中菜品的位置。
-
Multiple Payment Options – consumers need to have a variety of payment options available and this app provided cash, credit and online payment.
多种付款方式 –消费者需要有多种可用的付款方式,此应用提供了现金,信用卡和在线付款。
-
Access to Customer Support – the company offers multiple call centers and customers can access and reach out to support through the app. These centers provide a mix of different services from order processing to complaint handling and dealing with issues around deliveries.
访问客户支持 –公司提供多个呼叫中心,客户可以通过该应用访问并联系以获取支持。 这些中心提供各种不同服务,从订单处理到投诉处理以及处理交货问题。
-
Promo Codes – customers that do have issues can be compensated through the use of promo codes. In addition promo codes can be used to attract new consumers so the app has that capability built in.
促销代码 –确实有问题的客户可以通过使用促销代码获得补偿。 此外,促销代码可用于吸引新消费者,因此该应用程序内置了该功能。
In addition to the above user requirements, the app also had some specific developer features which helped differentiate it from other apps in the marketplace.
除了上述用户要求外,该应用程序还具有一些特定的开发人员功能,这有助于使其与市场上的其他应用程序区分开。
-
Scalable – as the client’s market and overall footprint constantly changed, the project also grew in scope and complexity. The service provided needed to meet these changing demands and had several specific deliverables –
可扩展 –随着客户市场和整体足迹的不断变化,该项目的范围和复杂性也在增加。 提供的服务可满足这些不断变化的需求,并具有一些特定的交付成果–
- The system needed to be able to handle high loads based on changing demands 该系统需要能够根据不断变化的需求处理高负载
- The system needed to be adaptable 系统需要适应性强
- The system needed to offer a way of integrating with other third-party APIs so that restaurants could use their existing systems. 该系统需要提供一种与其他第三方API集成的方式,以便餐厅可以使用其现有系统。
-
Tracking Capabilities – the app needed to track issues and problems and ensure that they were being proactively resolved where possible.
跟踪功能 –该应用需要跟踪问题,并确保在可能的情况下主动解决问题。
开发应用程序–魔术背后的过程 (Developing the App – The Process Behind the Magic)
NIX was invited to work with an onsite development on certain specific elements of the project. The requirement for NIX was that the system needed to remain functional at load and had to integrate flawlessly with some specific third-party APIs.
NIX被邀请就项目的某些特定要素进行现场开发。 对NIX的要求是,系统需要在加载时保持功能正常,并且必须与某些特定的第三方API完美集成。
-
System Structure – one of the challenges we had to deal with early in the process was the structure of the system itself. The team needed to ensure that all the partner systems worked correctly with the existing platform.
系统结构 –我们必须在流程早期解决的挑战之一就是系统本身的结构。 团队需要确保所有合作伙伴系统都可以在现有平台上正常工作。
We had to understand how the entire system worked and what needed to be monitored and tracked as quickly as possible. The metrics that needed to be checked included both technical and non-technical ones. For example, by understanding why a restaurant was canceling certain orders more often, we were able to proactively update the stop list of dishes. By doing this, we were able to ensure that dishes that were no longer available did not even appear on the website.
我们必须了解整个系统的工作方式,以及需要尽快监控和跟踪的内容。 需要检查的指标包括技术指标和非技术指标。 例如,通过了解为什么餐厅更频繁地取消某些订单,我们可以主动更新菜肴的停靠清单。 这样,我们可以确保不再提供的菜肴甚至不会出现在网站上。
-
Third Party Integration – many restaurants use different POS systems for their orders and inventory management. It was critical for us that the app integrated with these systems in a seamless manner. Initially these integrations were complex as while the general structure was the same, they each had different logic. Over the course of a year, we created many different integrations so that new partners are able to connect without any issues.
第三方集成 –许多餐厅使用不同的POS系统进行订单和库存管理。 对于我们而言,至关重要的是,该应用程序必须与这些系统无缝集成。 最初,这些集成是复杂的,因为总体结构相同,但它们各自具有不同的逻辑。 在一年的时间里,我们创建了许多不同的集成,以便新的合作伙伴能够毫无问题地进行连接。
We discovered that as the project transitioned to a microservice architecture, the complexity of the integrations increased. This however had a benefit in terms of reliability and flexibility. The addition of new partners is simple now, but it is only simple because of all the hard work that preceded.
我们发现,随着项目过渡到微服务架构,集成的复杂性增加了。 但是,这在可靠性和灵活性方面有好处。 现在添加新的合作伙伴很简单,但是由于之前的所有艰苦工作,所以添加新伙伴很简单。
-
Dealing with Load – we understood the issue of load intimately and built the system with it in mind. We knew that the underlying infrastructure needed to be able to deal with surges in traffic. These surges could influence anything from the database to the servers and the underlying network itself.
处理负载 –我们深入了解负载问题,并牢记这一点来构建系统。 我们知道,基础架构需要能够应对流量激增。 这些激增可能影响从数据库到服务器以及基础网络本身的所有内容。
Since the project was regularly changing, we knew that the best solution was through the use of monitoring and adjustments. The DevOps teams were regularly tracking application metrics and we were able to use this data to scale to create automatic scalability solutions.
由于项目是定期更改的,因此我们知道最好的解决方案是使用监视和调整。 DevOps团队定期跟踪应用程序指标,我们能够使用此数据进行扩展以创建自动可伸缩性解决方案。
-
Ongoing Project Communication and Coordination – at NIX we know the importance of well-defined processes and standards for project work. We worked with the client on the establishment of clear processes and guidelines. Once these systems were in place we saw an improvement in communication and throughput.
正在进行的项目沟通与协调 –在NIX,我们知道为项目工作制定明确的流程和标准的重要性。 我们与客户一起建立了清晰的流程和准则。 这些系统到位后,我们看到了通信和吞吐量的提高。
得到教训 (Lessons Learned)
Working on this platform was an excellent project. There were many lessons learned in the course of the work performed as the path to success was a bit more winding than we expected.
在这个平台上工作是一个出色的项目。 在工作过程中吸取了很多教训,因为通往成功的道路比我们预期的要弯曲得多。
One of the main lessons we took from this is the need to move from a minimum viable product (MVP) to something more robust and attractive. Being able to deliver this level of quality out the gate is not something all developers can do – it required the resources of a large corporation for us to ensure success. There are however some lessons that any business can consider:
我们从中吸取的主要教训之一是需要从最小可行产品(MVP)转向更强大和更具吸引力的产品。 并非所有开发人员都可以做到这一点,而是需要大公司的资源来确保成功。 但是,任何企业都可以考虑一些教训:
-
Define the metrics to measure – it is vital to know what is critical to your business and what is not as important. This applies across the whole system and needs to include the user interface also. With the user interface, simple objective metrics will not do. The tools you use need to understand where the users are looking on the app, the buttons they are pushing and the ones they are not. Any changes to the interface need to be tested with smaller focus groups first and all data and information collected, collated and analyzed. It’s necessary to understand that not all changes will have a positive impact so adjustments might be necessary.
定义要衡量的指标 –了解对您的业务至关重要和不那么重要的至关重要。 这适用于整个系统,还需要包括用户界面。 使用用户界面,简单的客观指标将无法实现。 您使用的工具需要了解用户在应用程序上的位置,用户所按的按钮和没有按的按钮。 对界面的任何更改都需要首先由较小的焦点小组进行测试,然后收集,整理和分析所有数据和信息。 有必要了解并非所有更改都会产生积极影响,因此可能需要进行调整。
-
Make sure Admins have tools – admin interfaces are basic requirements but are often ignored or forgotten. They need to be continually improved and maintained as they can have huge benefits. For example, a small saving of a second or two for an operation does not sound like a huge benefit. When this is multiplied across all the employees in your team though the benefits can be significant.
确保管理员拥有工具 –管理员界面是基本要求,但常常被忽略或遗忘。 他们需要不断改进和维护,因为它们可以带来巨大的好处。 例如,一次操作节省一到两秒钟听起来不算是巨大的好处。 如果将这乘以团队中所有员工的利益,那将是巨大的收益。
-
Monitor, Monitor, Monitor – you cannot be paranoid enough when it comes to the system. Disc’s run out of space, systems get hacked and it’s possible for malicious attacks to happen. Added to this are the internal issues when developers create suboptimal queries or even non-impactful changes have unforeseen consequences. Track everything that’s happening and come up with automated solutions to rectify them where possible.
Monitor,Monitor,Monitor –当涉及到系统时,您可能不会太偏执。 光盘空间不足,系统被黑客入侵,可能会发生恶意攻击。 此外,当开发人员创建次优查询甚至是无影响的更改都会带来无法预料的后果时,还会出现内部问题。 跟踪发生的一切,并提出自动化解决方案以在可能的情况下进行纠正。
-
Measure the right things – it’s important to define the right tech metrics for your project from the start. By doing so you can understand how you are progressing at each developmental stage. In addition, metrics will help you define when you are on the right track or not and whether your actions are making a situation better or worse.
衡量正确的事情 –从一开始就为您的项目定义正确的技术指标很重要。 这样,您可以了解每个开发阶段的进度。 此外,指标可以帮助您定义何时走上正确的路,以及您的行动是使情况变得更好还是更糟。
-
Business metrics matter too – while system and technical metrics are important, business metrics need to be considered also. For a food delivery app you’d want to know the number of orders processed, the average amount spent and the number of rejections at a specific restaurant as a start. Basically you’re looking for anything that has an impact on the bottom line and has something to do with money.
业务指标也很重要-尽管系统指标和技术指标很重要,但也需要考虑业务指标。 对于送餐应用程序,您首先需要了解在特定餐厅处理的订单数量,平均花费和拒收数量。 基本上,您正在寻找对底线有影响并且与金钱有关的任何东西。
-
Keep logs – failures and issues are at times inevitable. Without a way of replicating an issue, investigation can take days if not longer. This is where detailed application, network and infrastructure logs can help. With logging enabled an in place, diagnosis of problems can be improved dramatically.
保留日志 –故障和问题有时是不可避免的。 如果无法复制问题,调查可能需要几天甚至更长的时间。 这是详细的应用程序,网络和基础结构日志可以提供帮助的地方。 启用日志记录后,可以大大改善问题诊断。
-
Understand Capacity and Load – this pandemic is a perfect example of extra capacity. Ensure that your plans include sufficient leeway to handle this load and even more across servers, networks and infrastructure. As a developer it is important to ask this question at the start of the project and as it develops to ensure that you always have enough capacity available.
了解容量和负载 –这种大流行是额外容量的完美示例。 确保您的计划具有足够的回旋余地来处理此负载,并且还要在服务器,网络和基础结构之间留有更多余地。 作为开发人员,在项目开始时和开发过程中提出这个问题很重要,以确保您始终有足够的可用容量。
-
Scope creep is real – projects change over time as do the teams working on them. As teams increase in size and the projects change, how and what gets implemented might need adjusting.
范围的蔓延是真实的–项目随时间推移而变化,团队工作也在变化。 随着团队规模的扩大和项目的变化,实施方式和实施方式可能需要进行调整。
-
Review the code – code review needs to be part of the SOP (standard operating practice). This helps improve knowledge sharing internally but is also just good practice and a way of catching defects.
审查代码 –代码审查需要成为SOP(标准操作规范)的一部分。 这有助于改善内部的知识共享,但它也是良好的实践,也是发现缺陷的一种方法。
-
Build code that can be deleted – change is somewhat inevitable and it is important that your organization has a plan for dealing with change. With large projects like this, it is actually better to write code that can be removed without impacting the larger project versus code that needs to reconfigured. By writing code in small discreet «chunks» it is easy to throw out what isn’t working and replace it with new code that better fits the situation.
可以删除的构建代码 –更改在某种程度上是不可避免的,并且您的组织制定应对更改的计划很重要。 对于这样的大型项目,与需要重新配置的代码相比,编写可删除的代码而不影响较大的项目实际上更好。 通过用小巧的“块”编写代码,可以轻松排除不起作用的内容,并用更适合情况的新代码替换它。
-
Understand the importance of documentation – documentation is critical. The more people involved in a project, the greater its importance becomes. When documentation is non-existent or inaccurate, teams can spend days trying to decipher the code. While it’s a task that is not enjoyed by many, it is extremely important to have well written documentation.
了解文档的重要性 –文档至关重要。 参与项目的人员越多,其重要性就越大。 当文档不存在或不准确时,团队可以花几天时间来尝试解密代码。 尽管这项任务不是许多人所不喜欢的,但是拥有编写良好的文档非常重要。
项目推出 (Project Roll Out)
This project has been an unqualified success for NIX. Based on current data, the service is used in over 14,000 restaurants and is available in 33 cities. Some of the major chains that are using the service include TGI Friday’s and McDonald’s and it is only growing in popularity.
这个项目对NIX来说是无与伦比的成功。 根据当前数据,该服务已在14,000多家餐厅中使用,并在33个城市提供。 使用该服务的一些主要连锁店包括TGI Friday's和McDonald's,并且仅在普及中。
As a web service, this means that the load is only going to increase, and the product will need to adapt to the load. During the current pandemic, more restaurants and cafés want to join the service also which will further stress the system, but the NIX developers are ready for this.
作为Web服务,这意味着负载只会增加,并且产品将需要适应负载。 在当前的大流行期间,更多的餐馆和咖啡馆也希望加入该服务,这将进一步给系统带来压力,但是NIX开发人员已经为此做好了准备。
Online and digital services have seen a surge in popularity and growth during this pandemic. Barclaycard for example reported that while restaurants were negatively impacted by 6.7% in February, during the same time, takeaways and fast food sales rose by 8.7%. This was the start of the lockdown and the pattern over the months that followed reflected the same trends.
在此大流行期间,在线和数字服务的受欢迎程度和增长Swift。 例如,巴克莱卡(Barclaycard)报告说,尽管2月份餐馆受到了6.7%的负面影响,但与此同时,外卖和快餐销售却增长了8.7%。 这是封锁的开始,随后几个月的模式反映了相同的趋势。
Restaurants need to know and understand that online is not just a «nice to have» anymore, but is now a «must have» if they want to survive and thrive. If you are interested in creating your own delivery app, contact us immediately. We have done it before and know how to ensure you will be successful also.
餐馆需要了解并了解,在线购物不再只是“美味”,而现在,要想生存和发展,则必须成为“必须”。 如果您有兴趣创建自己的交付应用程序,请立即与我们联系。 我们之前已经做过,并且知道如何确保您也会成功。
java外卖送餐系统