def generate_tree():
    with app.app_context():
        data = flask.json.loads(request.data)
        params = data['params']
        age_params = {
            'avg_age': params['avg_age'],
            'age_dev': params['age_dev']
        }
        sender = ContactsTree(DEPTH, age_params).generate_tree()
        settings = {}
        settings.update(data['params'])
        simulator = SimulationManager(sender=sender, settings=settings)
        nodes = simulator.traverse()
        return flask.jsonify(dict(root=sender.to_dict(), nodes=nodes, edges=make_edges(nodes)))