SaaS增长圈_明点网络

您现在的位置是:首页 > SaaS公司百科 > 海外SaaS简介 > 正文

海外SaaS简介

SaaS公司Asana概况、产品功能、融资历史及主要竞品介绍

SaaSHunter2023-03-24海外SaaS简介885

#Asana#

SaaS公司Asana概况、产品功能、融资历史及主要竞品介绍

Asana是一家SaaS公司,主要提供项目管理软件,总部位于美国旧金山。目前,Asana的客户遍布全球190个国家和地区,其中包括微软、谷歌、Airbnb、Uber、Dropbox等众多知名企业。

SaaS公司Asana概况、产品功能、融资历史及主要竞品介绍

Asana产品主要功能有:

  • 项目管理:可视化项目进度、跟踪任务完成情况、查看项目成员负荷,并通过甘特图和日历视图对项目进行更直观的跟踪和管理。

  • 任务管理:可以通过任务列表、任务详情页面和任务标签来对任务进行分类管理,并可通过任务依赖关系、任务优先级和任务进度来对任务进行更细致的管理。

  • 文件管理:可以通过文件夹、文件标签、文件搜索等功能来对文件进行分类管理,并可以通过版本控制来对文件进行更细致的管理。

  • 数据管理:可以通过数据表、数据图表、数据分析等功能来对数据进行分类管理,并可以通过数据导出功能来对数据进行更细致的管理。

Asana目前已经完成了C轮融资,总融资额达到10亿美元。融资历史如下:

  • C轮:10亿美元,由新浪、高盛、东方富海投资,于2017年12月完成。

  • B轮:5050万美元,由新浪投资,于2016年3月完成。

  • A轮:2525万美元,由高盛投资,于2015年1月完

    !')

    return response
    

    def get_data(self, request, *args, **kwargs): return self.list_queryset(request)

    def get(self, request, *args, **kwargs): ret = {'code':0} queryset = self.get_data(request) ret['data'] = queryset return JsonResponse(ret)

    def post(self, request, *args, **kwargs): ret = {'code':0} form = self.get_form() if form.is_valid(): form.save() ret['msg'] = '添加成功!' else: ret['code'] = 1 ret['msg'] = form.errors return JsonResponse(ret)

class AssetListView(LoginRequiredMixin, View): def get(self, request, *args, **kwargs): return render(request, 'assets/assets.html')

class AssetJsonView(LoginRequiredMixin, View): def getdata(self, request): assetobj = Asset.objects.all() return asset_obj

def get(self, request, *args, **kwargs):
    ret = {'code':0}
    queryset = self.get_data(request)
    ret['data'] = queryset
    return JsonResponse(ret)

class AssetAddView(LoginRequiredMixin, View): def post(self, request, *args, **kwargs): ret = {'code':0} data = json.loads(request.body.decode('utf-8')) form = AssetForm(data) if form.is_valid(): form.save() ret['msg'] = '添加成功!' else: ret['code'] = 1 ret['msg'] = form.errors return JsonResponse(ret)

class AssetDetailView(LoginRequiredMixin, View): def getdata(self, request): assetobj = Asset.objects.get(pk=pk) return asset_obj

def get(self, request, pk, *args, **kwargs):
    ret = {'code':0}
    queryset = self.get_data(request)
    ret['data'] = queryset
    return JsonResponse(ret)

def put(self, request, pk, *args, **kwargs):
    ret = {'code':0}
    data = json.loads(request.body.decode('utf-8'))
    form = AssetForm(data, instance=asset_obj)
    if form.is_valid():
        form.save()
        ret['msg'] = '修改成功!'
    else:
        ret['code'] = 1
        ret['msg'] = form.errors
    return JsonResponse(ret)

def delete(self, request, pk, *args, **kwargs):
    ret = {'code':0}
    asset_obj.delete()
    return JsonResponse(ret)

class ServerListView(LoginRequiredMixin, View): def get(self, request, *args, **kwargs): return render(request, 'server/server.html')

class ServerJsonView(LoginRequiredMixin, View): def getdata(self, request): serverobj = Server.objects.all() return server_obj

class ServerAddView(LoginRequiredMixin, View): def post(self, request, *args, **kwargs): ret = {'code':0} data = json.loads(request.body.decode('utf-8')) form = ServerForm(data) if form.is_valid(): form.save() ret['msg'] = '添加成功!' else: ret['code'] = 1 ret['msg'] = form.errors return JsonResponse(ret)

class ServerDetailView(LoginRequiredMixin, View): def get_data

×