Comprehensive Meal Delivery App Development
Budget: $250 – $750 USD
I am seeking an experienced app developer to build a meal delivery app for both iOS and Android. Key features and functionalities include:
User Account and Management:
* Ability to create and log in to an individual account.
* Account management options such as profile creation, reviewing order history, and saving multiple addresses.
User Roles
* Delivery Queue
* Payment gateway
* Super User - can create update and delete without restriction.
* Admin - can create update and delete. Cannot create, update or delete a super user or admin. Needs
confirmation from super user to delete a user.
* Customer - can create an account and subscribe. Can create a schedule. Can add items to schedule. Can review schedule. Can checkout. Can update schedule of items minimum of 3 days before delivery.
Some business rules.
If a customer is updating scheduled items days before the delivery. Even though the items were already pay for if the user removes items a credit balance is visible and tracked in real time. So the user can choose to add different items or use at a later date.
The ideal freelancer for this project should have excellent skills in iOS and Android app development, with a history of creating apps that support user accounts and a variety of management features. Familiarity with the food industry or meal delivery apps is a bonus. Please share examples of similar apps you've developed or contribute to, specifically those with user account management features.
Item: {
Id: 1,
title: Carrot Pie,
description: Sweet carrot pie,
category: protein packed, vegetarian,
type: dish, meal, ingredient
nutritionBenefits: “a disrupting of nutrients”,
estimated Nutrition ratio: trans fat, iron, sodium, glucose, vitamins, protein, carbs
ingredients?: [{ name: “carrot”, weight: 600, metricUnit: grams, maintNutrients: [“vitamin D”] }, { name: “onion”, weight: 600, metricUnit: grams, maintNutrients: [“vitamin D”] }] display collapsable ratio in weight
Weight: 600,
Price: 1800,
status: active, inactive // inactive Items can’t be selected.
}
Schedule: {
Id: 1,
customerId: 1,
DeliveryScheduleId: 1,
deliveryConsistencyInHours: 120hrs minimum,
Status: active, inactive, paused, canceled // canceled, paused or inactive Schedule can’t receive deliveries.
}
DeliverySchedule: {
Id: 1,
itemId: 1,
scheduleId: 1, <<< parent
deliveryDate: dateTime,
deliveryTime: { start: 10:00am, end: 3:00pm},
Status: pending, completed, canceled
}
// a customer can canceled, if a schedule is paused and the delivery schedule date and end date has passed then this is automatically canceled. A canceled DeliverySchedule must not receive deliveries.
A completed DeliverySchedule is when a customer receives the delivery.
Address: {
Id: 1,
customerId: 1,
addressLine1:
addressLine2:
city:
parishStateProvince:
country:
directions: “give directions”
status: active, inactive // an inactive address cannot be used.
}
Customer: {
Id: 1,
userId: 1,
addressId: 1,
scheduleId: 1
Purchases: [{ id: 1}, { id: 2}]
Status: active, inactive // an inactive customer cannot make purchases.
}
User: {
Id: 1,
fName: “John”,
lName: “Doe”,
email:userEmail,
password: ****,
Role: customer, admin, super,
Status: active, inactive // an inactive user cannot login to use the application.
}
Purchase: {
Id: 1,
customerId: 1,
scheduleId: 1,
TotalCost: 45000,
Status: completed, incomplete, // if purchase was successful then it was completed. Else incomplete.
}
Claim: {
customerId: 1,
purchaseId: 1,
deliveryScheduleId: 1,
category: missing item, damaged item, delivery time, report driver,
message: “words”
status: open, closed, pending, awaiting customer response // awaiting customer response for admin view
}
Cart: {
Id: 1,
Customer: 1,
Items: [{deliveryScheduleId: 1}, {deliveryScheduleId: 1}]
}
User Account and Management:
* Ability to create and log in to an individual account.
* Account management options such as profile creation, reviewing order history, and saving multiple addresses.
User Roles
* Delivery Queue
* Payment gateway
* Super User - can create update and delete without restriction.
* Admin - can create update and delete. Cannot create, update or delete a super user or admin. Needs
confirmation from super user to delete a user.
* Customer - can create an account and subscribe. Can create a schedule. Can add items to schedule. Can review schedule. Can checkout. Can update schedule of items minimum of 3 days before delivery.
Some business rules.
If a customer is updating scheduled items days before the delivery. Even though the items were already pay for if the user removes items a credit balance is visible and tracked in real time. So the user can choose to add different items or use at a later date.
The ideal freelancer for this project should have excellent skills in iOS and Android app development, with a history of creating apps that support user accounts and a variety of management features. Familiarity with the food industry or meal delivery apps is a bonus. Please share examples of similar apps you've developed or contribute to, specifically those with user account management features.
Item: {
Id: 1,
title: Carrot Pie,
description: Sweet carrot pie,
category: protein packed, vegetarian,
type: dish, meal, ingredient
nutritionBenefits: “a disrupting of nutrients”,
estimated Nutrition ratio: trans fat, iron, sodium, glucose, vitamins, protein, carbs
ingredients?: [{ name: “carrot”, weight: 600, metricUnit: grams, maintNutrients: [“vitamin D”] }, { name: “onion”, weight: 600, metricUnit: grams, maintNutrients: [“vitamin D”] }] display collapsable ratio in weight
Weight: 600,
Price: 1800,
status: active, inactive // inactive Items can’t be selected.
}
Schedule: {
Id: 1,
customerId: 1,
DeliveryScheduleId: 1,
deliveryConsistencyInHours: 120hrs minimum,
Status: active, inactive, paused, canceled // canceled, paused or inactive Schedule can’t receive deliveries.
}
DeliverySchedule: {
Id: 1,
itemId: 1,
scheduleId: 1, <<< parent
deliveryDate: dateTime,
deliveryTime: { start: 10:00am, end: 3:00pm},
Status: pending, completed, canceled
}
// a customer can canceled, if a schedule is paused and the delivery schedule date and end date has passed then this is automatically canceled. A canceled DeliverySchedule must not receive deliveries.
A completed DeliverySchedule is when a customer receives the delivery.
Address: {
Id: 1,
customerId: 1,
addressLine1:
addressLine2:
city:
parishStateProvince:
country:
directions: “give directions”
status: active, inactive // an inactive address cannot be used.
}
Customer: {
Id: 1,
userId: 1,
addressId: 1,
scheduleId: 1
Purchases: [{ id: 1}, { id: 2}]
Status: active, inactive // an inactive customer cannot make purchases.
}
User: {
Id: 1,
fName: “John”,
lName: “Doe”,
email:userEmail,
password: ****,
Role: customer, admin, super,
Status: active, inactive // an inactive user cannot login to use the application.
}
Purchase: {
Id: 1,
customerId: 1,
scheduleId: 1,
TotalCost: 45000,
Status: completed, incomplete, // if purchase was successful then it was completed. Else incomplete.
}
Claim: {
customerId: 1,
purchaseId: 1,
deliveryScheduleId: 1,
category: missing item, damaged item, delivery time, report driver,
message: “words”
status: open, closed, pending, awaiting customer response // awaiting customer response for admin view
}
Cart: {
Id: 1,
Customer: 1,
Items: [{deliveryScheduleId: 1}, {deliveryScheduleId: 1}]
}