XenShop

XenShop:移动工程师试用评估

功能

产品功能

功能 实施 描述
启动屏幕 打开主屏幕前显示 Xendit 徽标
主屏幕 启动画面后显示主页
分类列表 以缩略图和横幅形式显示类别列表
产品列表 根据类别显示产品列表
产品详情 显示单个产品详细信息
添加到购物车 将产品列表添加到购物车
购物车列表 显示购物车中的产品列表
结账 显示成功确认

XenShop

XenShop 是印度尼西亚的一家在线商店。为了促进业务增长,商店经理计划构建一个移动应用程序,让客户可以在线购买产品。XenShop 的目标是评估移动工程师在与我们在 Xendit 日常工作中相关的软件工程方面的熟练程度。
此存储库的目的是提交试用演示以供 Xendit 进行内部评估。

API 文档

XenShop 已使用 FakeStoreApi 的 API 开发。您可以在此处查看 API 文档。

设计

XenShop 仅用于内部评估的演示/试用,因此所有设计均来自互联网。如果您想查看项目中使用的图片,请随意导航至assets文件夹。下方所有部分均提供设计预览。

版本

XenShop 是基于以下版本详细信息开发的。

框架 版本 渠道
Flutter 2.0.3 稳定版
Dart 2.12.2

开发

XenShop 是一个简单的电子商务领域应用程序,为内部评估而开发。以下是每个功能的详细说明,包括 API 和预览。

启动画面

启动画面是应用程序的初始路由,每次用户启动应用程序时都会显示 3 秒。

预览

主屏幕

主屏幕在启动画面后立即启动。主屏幕是应用程序的基础。所有路由和导航都从主屏幕开始和结束。从主屏幕,用户可以导航到产品列表和购物车。主屏幕以水平列表形式的缩略图显示类别列表,以垂直列表形式显示类别横幅。名称为类别的资源用于显示图片。

预览

分类列表

类别以缩略图(水平)和横幅(垂直)的形式显示在主屏幕上。

使用的 API

https://fakestoreapi.com/products/categories

响应

[
    "electronics",
    "jewelery",
    "men's clothing",
    "women's clothing"
    ]

产品列表

产品以垂直列表视图显示。产品根据其类别获取。产品包含有关产品的基本信息,如标题、描述、图片、价格、评分等。

使用的 API

https://fakestoreapi.com/products/category/${categoryName}

响应

[
    {
        id:5,
        title:'...',
        price:'...',
        category:'jewelery',
        description:'...',
        image:'...'
    }
    /*...*/
    {
        id:8,
        title:'...',
        price:'...',
        category:'jewelery',
        description:'...',
        image:'...'
    }
]

预览

产品详情

产品详情根据上述 API 收到的产品信息显示。显示的参数如下。

显示的参数

{
    id:8,
    title:'...',
    price:'...',
    category:'jewelery',
    description:'...',
    image:'...'
}

预览

购物车列表

购物车以垂直列表视图显示。产品列表中显示的产品项与此处非常相似。唯一的区别是评分条被数量选择器替换。响应中的产品数组包含一个包含 productId 和 quantity 的对象数组。

使用的 API

https://fakestoreapi.com/carts/${userId} (目前考虑 userId: 1)

响应

{
    id:5,
    userId:1,
    date:...,
    products:[...]
}

预览

添加到购物车

添加到购物车功能允许用户将商品添加到购物车并继续结账。商品以 JSON map 的形式发布到 API。该 map 由产品 ID 和产品数量组成一个数组。此外,userId、日期等参数也在此 map 中发布。它还显示了目前静态的价格摘要。

使用的 API

https://fakestoreapi.com/carts/

请求 - POST

{
    userId:5,
    date:2020-02-03,
    products:[{productId:5,quantity:1},{productId:1,quantity:5}]
}

响应

{
    id:21
    userId:5,
    date:2020-02-03,
    products:[{productId:5,quantity:1},{productId:1,quantity:5}]
}

预览

结账页面

结账页面是完全静态的。它取决于上述 API 的成功响应。收到上述 API 的成功响应后,应用程序会导航到此页面。它向用户显示交易成功的确认,并允许用户选择继续购物。

预览

注意事项

在 FakeStoreApi 中,POST 请求会返回一个带有新 ID 的对象。需要注意的是,实际数据不会插入数据库。因此,如果您想访问新 ID,将会收到 404 错误。

重要提示

此存储库仅供 Xendit 的移动工程师进行内部评估。请勿滥用。

作者

如果您喜欢本教程,请不要忘记点赞Star。也请关注以获取即将发布的教程通知。

GitHub

查看 Github