Dr-helper Project Design Introduction (a point meal management system including mobile and web-side)

Source: Internet
Author: User
Tags jquery library

One, source code path


Second, the interface

To access the Web service through the browser, you can see the interface such as the following:

Adt-bundle compiles project build dr-helper.apk. After installation, you can see the application interface such as the following:

Third, background

After the birth of Java is mainly used for web development, with the rise of Android, it is also widely used in the mobile field. After learning a series of Java-related technologies, I want to find a project to actually use it. So I'm thinking about the ability to build a restaurant management system with mobile and web-based technologies that can be built on Java-related technology, and in this project I'll use a combination of technologies and try to make them fit into the scene.

The system serves three types of roles in the restaurant. The first is the ordering waiter, who uses the mobile phone Android app to do the ordering. Next is the kitchen chef, they will take the Web service to obtain the point of the dishes, after the finished dishes can be sent through the Web service to the order waiter to send a notice. Finally, the cashier's manager, who is also through the Web service to carry out the relevant order management, such as payment operations. and other management of the entire system.

The technical solution includes the mobile front and back end and the web back and forth, the Mobile Frontend is an Android application, and the mobile backend uses the Tomcat container servlet to provide services. Both Exchange data through JSON messages, which reduces the amount of data that can interact with each other. The Web backend is also used by the Tomcat container servlet to provide services. The front-end Web page is then generated through a JSP.

On the database selection, I chose to use MySQL to store the traditional relational and limited amount of data, and I chose to use MongoDB to store such a large amount of data as the order, so that I could make full use of my own strengths.

Iv.. Function realization

1, Android support such as the following features

Basic Features: Login/logout, homepage, check table, open table, check Order, orders, menu, à la carte, turntable, counter, update, configuration

Notification function: Empty table notification, serving notice

2, web-side support such as the following features

Basic Features: Login/Logoff

Kitchen function: The next single dish management, finished the food management

Counter function: Order management (including checkout. By ticket, table number query), User management, table Management, Menu category management, menu management, configuration Management

Five, the overall design ideas

1. Database design

1) Dr_user table stores user account information, dr_table table storage table information, Dr_menu_type table stores the type of food information. Dr_menu table stores the menu information, the Dr_option table stores configuration option information, which is a relational table of 5 tables. Use the MySQL database store.

Their detailed fields are as follows:

Create Tabledr_user (

user_id Int (4) NOT null primary keyauto_increment,

User_name char (255) is not NULL,

USER_PASSWD char (255) is not NULL,

User_auth enum (' Waiter ', ' Chef ', ' admin ') not null);

Create Tabledr_table (

table_id Int (4) NOT null primary keyauto_increment,

Table_num Int (4) is not NULL,

Table_seat_num Int (4) is not NULL,

Table_empty Int (1) not NULL);

Create Tabledr_menu_type (

menu_type_id Int (4) NOT null primary keyauto_increment,

Menu_type_name char (255) not NULL);

Create Tabledr_menu (

menu_id Int (4) NOT null primary keyauto_increment,

Menu_name char (255) is not NULL,

Menu_price Int (+) is not NULL,

menu_type_id Int (4) not NULL);

Create Tabledr_option (

option_id Int (4) NOT null primary keyauto_increment,

Option_name char (255) is not NULL,

Option_value char (255) not NULL);

2) There is a dr_order for the non-relational collection, using the MongoDB database storage, including order information, its structure such as the following:

dr_order:{"id": "XXX", "Order": 1, "table": 1, "Waiter": "xxx", "Time": "XXX", "admin": "xxx", "pay": true, "detail": [{"Menu ":" XXX "," price ":" Amount ": 1," Chef ":" xxx "," Finish ": true," remark ":" XXX "}]}

3) Information such as connection parameters for MySQL and MongoDB databases. The properties configuration file stored in the background.

4) Some database storage operations use stored procedures. These can be found in the database backup file in the DRHELPER_DB database folder under the project folder.

2, Android front-end application design

1) Each of its basic functions consists of an activity and a asynctask, and the activity is loaded into the layout XML to construct the operating interface.

When a user runs an operation, it is necessary to run the JSON serialization of the communication object, and an HTTP request occurs to the background. Waits for the HTTP response, the response message runs JSON deserialization, and the feedback is processed based on the result. This series of processing is due to the network communication among them. The actual running time can be long and short. So the activity is going to start a asynctask thread to run these background operations to avoid the problem that the activity runs more than 5 seconds to report an exception, and also to coincide with the general idea that the interface and logical processing are threaded apart.

2) for two notification functions, empty table notification and serving notification, I need to implement a message push mechanism, androidclient need to create and maintain a TCP long connection with the background message push channel.

The implementation scenario is that when a user enables a notification subscription, a service is created first, and then a thread is created in the service, because the Android service may be running on the same thread as the activity, Such a TCP long connection task needs to have a separate thread to run, so start a thread again.

In this line thread creates a TCP Socket with a background push service, initiates a login request message, and periodically sends a heartbeat message to maintain a TCP long connection, and also initiates a notification of the booking request message based on the Androidclient notification reservation configuration.

When you receive a notification push message through this socket behind the scenes. The HTTP request is then sent to get the detailed notification content, and the corresponding Android notification message is issued according to the notification type when the response is received.

There are some exceptions that need to be handled, such as when the server exits, it needs to be detected and exit the service directly. No re-logon attempts are made because of this. When the service side exits after the login information of the notification service is not available, the entire application login information is not available, so you need to quit the entire app and log in, when the app re-login will also initiate the notification service login.

Also, when the user closes the notification function based on the notification subscription operator interface. To be able to interrupt the notification service itself. There is also the need to send a broadcast message to the service, once again pulled up by the services thread, due to the fact that Android phones may kill the backend service thread.

3) for the withdrawal of activity, the use of a register broadcast receiver program to achieve.

When the user exits the login. An exit broadcast is issued, and each activity on the activity stack is received and then each exit and destroy itself. The exit implementation of the service is similar.

4) The application of the two tables that need to be read frequently is Dr_menu_type and Dr_menu, and the two tables do not change frequently, so store them in an Android SQLite, which can significantly save the data exchanged with the backend, and then through the Special update function. To synchronize the data for both tables with the background. Through the implementation of the ContentProvider mechanism to encapsulate the access to the underlying sqlite, in order to achieve business-level interface friendly.

5) for the account information that has been logged in, the server address, notification subscription and other configuration information are stored in the preferences, and configured according to the Options menu.

3. Web Front-end design

1) using a single-page site style, click on the page button or link, through the AJAX request to the back end to submit data. And gets the newly generated partial page. Finally, the local page is updated to the corresponding location. The relevant JS operations are carried out using the jquery library. To achieve better browser compatibility.

2) on the structure of the HTML page, use the JSP script to complete. The Java Bean object generated after the background servlet logic is processed, within the JSP file. Using JSP technologies such as Java scripts or Jstl. Gets the Java Bean object assembled into the desired HTML page.

4. Java Background Service Design

1) Background processing through the servlet of the Tomcat container. To implement MVC. The servlet only carries out the control logic of message content extraction, service invocation and message forwarding, and the detailed business logic is carried out in the corresponding service. Contains operations on the database.

2) The operation of the database is done through an agent, which can mask the differences between the two types of data. To the upper layer with unified data operation interface.

3) on the message push service background implementation. A context listener that creates a servlet so that the listener can be invoked when the Tomcat container starts and exits when the container exits.

Then create a thread in this listener. This thread listens for a TCP Socket. When there is a connection from the androidclient. Create processing connections and manage them. When the business logic is triggered to a table event or a serving event, a list of scheduled notifications is passed through the androidclient. Find the processing connection for, send a notification push message to notify androidclient for detailed notification content. In connection with androidclient maintenance, in addition to the need to respond to androidclient heartbeat messages, but also need to activate the timer to detect the existence of heartbeat messages, when detected to no heartbeat message indicates that the corresponding androidclient has been abnormally exited, You will need to clear this failed connection.

4) in order to be able to transfer Chinese characters in the response message. The codec that needs to set the response message is UTF-8, which is required for each servlet. So create a filter to unify this setting.

5) Whether it is mobile or web-side, the foreground user information is saved, because it is based on the HTTP protocol before and after the communication. So use cookies to complete. On the background processing. The servlet's encapsulated session provides support for the processing of cookies. You can use it directly.

6) In the service deployment, using Nginx to do reverse proxy, forwarding the request to the back end of the tomcatserver processing. This is often used in the deployment method, due to the current system files are relatively small, so there is no picture and other static resources to the nginx under such a method of dynamic separation.

Vi. Introduction to Documents and folders

Android\: Mobile-side folder

Android\libs\: Support Package Folder

Android\res\drawable-hdpi\: app's picture folder

Android\res\layout\: Layout XML file Folder

Android\res\menu\: System Menu layout XML file Folder

Android\res\values\: string Definition file Folder

Android\src\com\drhelper\activity\:activity file Folder

Android\src\com\drhelper\activity\afterloginactivity.java: Pre-logon activity general function, other activity inherits this activity

Android\src\com\drhelper\activity\beforeloginactivity.java: Activity general function after login. Inherit from Afterloginactivity, other activity inherits this activity

Android\src\com\drhelper\activity\changetableactivity.java: Activity on the change page

Android\src\com\drhelper\activity\checkorderactivity.java: Activity on a single page

Android\src\com\drhelper\activity\checktableactivity.java: Activity on the table-check page

Android\src\com\drhelper\activity\createtableactivity.java: Activity on the Open Table page

Android\src\com\drhelper\activity\loginactivity.java: Activity on the login page

Android\src\com\drhelper\activity\mainactivity.java: Activity on the main page

Android\src\com\drhelper\activity\menuactivity.java: Activity on menu Display page

Android\src\com\drhelper\activity\orderactivity.java: Activity on the Order Display page

Android\src\com\drhelper\activity\ordermenuactivity.java: Activity on menu Operation page

Android\src\com\drhelper\activity\prefsactivity.java: Activity on the Preference Configuration page

Android\src\com\drhelper\activity\uniontableactivity.java: Activity on the Counter page

Android\src\com\drhelper\activity\updateactivity.java: Update activity on page

Android\src\com\drhelper\bean\:java Bean Object Folder

Android\src\com\drhelper\bean\menuitem.java: Menu item Bean with menu Display page

Android\src\com\drhelper\bean\menulist.java: Menu list Bean with menu Display page

Android\src\com\drhelper\bean\com\: Java Bean Object folder for pre-background communication

Android\src\com\drhelper\bean\com\emptytable.java: The communication object of the table-checking page

Android\src\com\drhelper\bean\com\emptytablelist.java: The communication object of the table-checking page

Android\src\com\drhelper\bean\com\login.java: The communication object of the login page

Android\src\com\drhelper\bean\com\menulist.java: Update the Communication object for the page

Android\src\com\drhelper\bean\com\menutypelist.java: Update the Communication object for the page

Android\src\com\drhelper\bean\com\noticedetail.java: The communication object that gets the notification

Android\src\com\drhelper\bean\com\noticeheartbeat.java: Notifies the heartbeat of the communication object

Android\src\com\drhelper\bean\com\noticelogin.java: Notifies the logged-on communication object

Android\src\com\drhelper\bean\com\noticelogout.java: Notifies the logged-off communication object

Android\src\com\drhelper\bean\com\noticepush.java: Communication object for notification message

Android\src\com\drhelper\bean\com\noticesubscribe.java: Notifies the intended communication object

Android\src\com\drhelper\bean\com\onetableoneorder.java: A communication object that includes a table number and an order number. Can be used in many places

Android\src\com\drhelper\bean\com\orderinfo.java: Communication object for order information

Android\src\com\drhelper\bean\com\twotableoneorder.java: A communication object that includes two table numbers and an order number, which can be used in multiple places

Android\src\com\drhelper\entity\: Database Objects folder

Android\src\com\drhelper\entity\detail.java: The corresponding object in the Detail field in the Order collection

Android\src\com\drhelper\entity\menu.java: The corresponding object of the menu table

Android\src\com\drhelper\entity\menutype.java: The corresponding object of the menu type table

Android\src\com\drhelper\entity\order.java: The appropriate object for the Order collection

Android\src\com\drhelper\provider\menuprovider.java: ContentProvider Encapsulation Implementation of menu and menu type tables


Android\src\com\drhelper\task\:asynctask Implementing folders

Android\src\com\drhelper\task\changetabletask.java: task of changing the function of the station

Android\src\com\drhelper\task\checkordertask.java: The task of checking the single function

Android\src\com\drhelper\task\checktabletask.java: task of table-checking function

Android\src\com\drhelper\task\createtabletask.java: task of opening table function

Android\src\com\drhelper\task\deleteordertask.java: Task to delete order function

Android\src\com\drhelper\task\loadordertask.java: Tasks for the order loading function

Android\src\com\drhelper\task\logintask.java: Tasks for the login feature

Android\src\com\drhelper\task\submitordertask.java: The task of submitting the order function

Android\src\com\drhelper\task\uniontabletask.java: task of the function of the platform

Android\src\com\drhelper\task\updatetask.java: Tasks for updating features

Android\src\com\drhelper\util\cookiemanager.java:cookie function implementation

Android\src\com\drhelper\util\dialogbox.java: Prompt box function implementation

Realization of android\src\com\drhelper\util\httpengine.java:http communication mechanism

Android\src\com\drhelper\util\prefsmanager.java: Preference Management Objects

Server\: Server-side folder

Server\drhelper_db\drhelper_mysql_db.sql:mysql Database backup files

Server\drhelper_db\drhelper_mongodb\drhelper\:mongodb Database Backup Files folder

server\tomcat\jsp\:jsp file Folder


Server\tomcat\res\drhelper.js: JS file for Project

JS file for Server\tomcat\res\jquery-1.10.1.js:jquery Library

Server\tomcat\web-inf\lib\: Support Package Folder

Server\tomcat\web-inf\src\dbconfig.properties: Database configuration information file

Server\tomcat\web-inf\src\com\drhelper\android\:android Background Service Implementation folder

Server\tomcat\web-inf\src\com\drhelper\android\bean\noticeevent.java: Notification event object used internally by the notifications service

Server\tomcat\web-inf\src\com\drhelper\android\bean\usersocketchannel.java: Username and connection mapping objects used internally by the notification service

Server\tomcat\web-inf\src\com\drhelper\android\bean\com\: Java Bean Object folder for pre-background communication. Same as the corresponding folder in the Android folder

Server\tomcat\web-inf\src\com\drhelper\android\listener\noticeserverlistener.java: Notification Service Context Listener implementation


Server\tomcat\web-inf\src\com\drhelper\android\service\:android Background Business Logic Implementation folder

Server\tomcat\web-inf\src\com\drhelper\android\service\changetableservice.java: The service logic realization of the function of changing the platform

Server\tomcat\web-inf\src\com\drhelper\android\service\checkorderservice.java: The realization of the business logic of checking single function

Server\tomcat\web-inf\src\com\drhelper\android\service\checktableservice.java: The function business logic realization of table-checking

Server\tomcat\web-inf\src\com\drhelper\android\service\createtableservice.java: Open Table function business logic realization

Server\tomcat\web-inf\src\com\drhelper\android\service\deleteorderservice.java: Delete Order function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\service\getnoticeservice.java: Get notification function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\service\loadorderservice.java: Load Order function Business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\service\loginservice.java: Login function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\service\logoutservice.java: Logoff function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\service\service.java: Background business logic abstract class

Server\tomcat\web-inf\src\com\drhelper\android\service\submitorderservice.java: Submit Order function Business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\service\uniontableservice.java: The realization of the function business logic of the Platform

Server\tomcat\web-inf\src\com\drhelper\android\service\updatemenuservice.java: Update function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\service\updatemenutypeservice.java: Update function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\:android Background Control logical servlet Implementation folder

Server\tomcat\web-inf\src\com\drhelper\android\servlet\changetableservlet.java: Platform Change function servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\checkorderservlet.java: A single-function servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\checktableservlet.java: Search table function servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\createtableservlet.java: Open Table function servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\deleteorderservlet.java: Delete order feature servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\getnoticeservlet.java: Get notification feature servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\loadorderservlet.java: Load Order function servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\loginservlet.java: Login feature servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\logoutservlet.java: Logoff feature servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\submitorderservlet.java: Submit Order function Servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\uniontableservlet.java: Implementation of the function servlet of the platform

Server\tomcat\web-inf\src\com\drhelper\android\servlet\updatemenuservlet.java: Update feature servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\servlet\updatemenutypeservlet.java: Update feature servlet implementation

Server\tomcat\web-inf\src\com\drhelper\android\util\logicexception.java: Program Logic Exception Object

Server\tomcat\web-inf\src\com\drhelper\android\util\typeconvert.java:string and Bytebuffer Object Conversion helper Classes

server\tomcat\web-inf\src\com\drhelper\common\: Background Common functionality Implementation folder

Server\tomcat\web-inf\src\com\drhelper\common\db\database.java: Database base class

Server\tomcat\web-inf\src\com\drhelper\common\db\dbmanager.java: Database Operations Agent Object


Server\tomcat\web-inf\src\com\drhelper\common\db\mysqldb.java:mysql Database Operations Object

Server\tomcat\web-inf\src\com\drhelper\common\entity\: Database Objects folder, same as the corresponding folder in the Android folder

Server\tomcat\web-inf\src\com\drhelper\common\filter\servletfilter.java:servlet Filter Implementation

Server\tomcat\web-inf\src\com\drhelper\web\:web Background Service Implementation folder

Server\tomcat\web-inf\src\com\drhelper\web\bean\: Java Bean Object folder for providing data to JSP pages

Server\tomcat\web-inf\src\com\drhelper\web\bean\adminmenu.java: Menu Management Page Menu Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\adminmenuobject.java: Menu Management Page objects

Server\tomcat\web-inf\src\com\drhelper\web\bean\adminmenutypeobject.java: Menu Type Management Page Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\adminoptionobject.java: Configuring Management Page Objects

Server\tomcat\web-inf\src\com\drhelper\web\bean\adminorder.java: Order Management Page Order Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\adminorderobject.java: Order Management Page objects

Server\tomcat\web-inf\src\com\drhelper\web\bean\admintableobject.java: Table Management Page Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\adminuserobject.java: User Management Page objects

Server\tomcat\web-inf\src\com\drhelper\web\bean\finishmenu.java: Finished menu item Management page Menu Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\finishmenuobject.java: Finished menu item Management Page Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\indexobject.java: Home Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\loginobject.java: Logon Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\logoutobject.java: Unregistering objects

Server\tomcat\web-inf\src\com\drhelper\web\bean\ordermenu.java: Order menu Item Management page Menu Object

Server\tomcat\web-inf\src\com\drhelper\web\bean\ordermenuobject.java: Order Menu Management Page objects

Server\tomcat\web-inf\src\com\drhelper\web\bean\pageinfo.java: Page Number Object

Server\tomcat\web-inf\src\com\drhelper\web\service\:ajax Background Business Logic Implementation folder

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxadminmenuservice.java: Menu Management business logic Implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxadminmenutypeservice.java: Menu Type management business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxadminoptionservice.java: Configuration Item Management business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxadminorderservice.java: Order Management business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxadmintableservice.java: Table Management business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxadminuserservice.java: User management business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxfinishmenuservice.java: Finished food management business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxloginservice.java: Login function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxlogoutservice.java: Logoff function business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\ajaxordermenuservice.java: The implementation of the management business logic of the next single dish

Server\tomcat\web-inf\src\com\drhelper\web\service\indexservice.java: Home Business logic implementation

Server\tomcat\web-inf\src\com\drhelper\web\service\service.java: Business logic Abstraction Interface

Server\tomcat\web-inf\src\com\drhelper\web\servlet\:ajax Background Control logical servlet Implementation folder

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxadminmenuservlet.java: Menu Management control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxadminmenutypeservlet.java: Menu Type Management control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxadminoptionservlet.java: Configuration Item Management control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxadminorderservlet.java: Order Management control Logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxadmintableservlet.java: Table Management control Logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxadminuserservlet.java: User Management control Logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxfinishmenuservlet.java: Finished menu management control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxloginservlet.java: Login function control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxlogoutservlet.java: Logoff function control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\ajaxordermenuservlet.java: Order Menu Management Control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\servlet\indexservlet.java: Home Control logic servlet implementation

Server\tomcat\web-inf\src\com\drhelper\web\util\serviceutil.java: Business logic Auxiliary function class

Server\tomcat\web-inf\src\com\drhelper\web\util\servletutil.java:servlet Control logic Auxiliary function class

VII. Deployment Methodology

1, the source code after the download. Compile the server-side source code under the Servers folder with Eclipse, and compile the mobile source code under the Android folder with Adt-bundle.

2. Install Nginx and Tomcat on the server and configure Nginx to forward all requests to Tomcat. Install MySQL and MongoDB at the same time.

3, set up the project folder Drhelper under Tomcat/webapps. Then copy the files generated by the Server/tomcat folder to Drhelper.

4. Import the database backup files under the server/drhelper_db folder into MySQL and MongoDB respectively.

5. Install the APK file generated by the Android folder on the phone.

6, through the application of the mobile phone can normally visit the mobile part of the system, the use of attendant role-related functions, the same time through the browser can also access the Web Part of the system, using the chef and Administrator role-related functions.


Dr-helper Project Design Introduction (a point meal management system including mobile and web-side)

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.