Giter Site home page Giter Site logo

tracardi / tracardi-api Goto Github PK

View Code? Open in Web Editor NEW
32.0 32.0 37.0 12.79 MB

This is TRACARDI API - It uses Tracardi backend.

License: Other

Dockerfile 0.06% Python 6.06% CSS 19.48% HTML 71.82% Shell 0.03% JavaScript 0.40% SCSS 2.15% Mako 0.01%
api api-rest fastapi hacktoberfest hacktoberfest2023

tracardi-api's Introduction

github_banner

Customer data and engagement suite, an open-source alternative to Segment, RudderStack, etc.


Explore Tracardi Documentation · ⭐️ Support the project · 👨‍💻 Join the community · 📺 Watch tutorials on YOUTUBE

GitHub Repository Stars Count Follow Us on Twitter Subscribe on our Youtube Channel Subscribe on our Youtube Channel Subscribe on our Youtube Channel

API-First Composable Open-source Customer Data Platform

TRACARDI is an API-first, composable CDP solution, that is tailored for any company willing to integrate CDP into their Platform. Tracardi comes with a low-code or no-code editor aimed at any business that wants to start using user data for automated customer engagement. It is intended for anyone who carries out any type of customer interaction, be it through sales or service delivery.

Tracardi collects data from customer journeys and assigns it to a profile, automates data enhancement, and facilitates 🚀 Machine Learning APIs usage.

⭐️ Screenshots

flow-1

✨ Features!

What TRACARDI can do for you:

  • Reuse Current Infrastructure - Tracardi doesn’t require complex integration or dedicated infrastructure. It runs on top of cloud-managed services, reusing your existing infrastructure and spinning up new resources when needed.

  • Collect Customer Data - You can collect, ingest, aggregate, and store customer data from multiple sources in real time.

  • Model Customer Data - You can model data. Create rules that will model the data from your page and copy it into the user profile.

  • Personalize User Experience - You can personalise the user experience with real-time frontend apps injected into your existing webpage, customised messages, marketing segmentation, and in-time messaging.

  • Unify Profiles - You can merge customer data from various sources into a single profile. Automate the process of eliminating duplicate customer records. Blend customers into one account.

  • Integrate Internal Systems - Tracardi is a centralised communication and orchestration hub that can integrate different parts of your IT.

  • Scale E-commerce Easily - Tracardi is a headless, API-first platform. Built with modern tools and designed as a decentralised system that can handle your needs.

  • Use Social Engagement - Connect your e-commerce platform to existing social media networks using Tracardi bridges. Reward your customers for sharing your products or leaving comments on contents that helps you sell.

  • Stay open to all the tools available on the Internet - Tracardi is open source. Do not limit your business to a closed set of tools. If there is any tool that will help you sell Tracardi, it will help you connect it with your business.

Want to see Tracardi in action? Subscribe to our 📺 Youtube channel!

👇 Installation and getting started

The easiest way to run TRACARDI is to run it as a 🐳 docker container.

  • Install docker and docker-compose on your local machine

  • Clone tracardi/tracardi-api by executing the following line in your terminal.

    git clone https://github.com/Tracardi/tracardi-api.git
  • Go to the TRACARDI API folder, and run the following command:

cd tracardi-api
docker-compose up
  • Visit the url http://127.0.0.1:8787 and complete the installation in Tracardi GUI.

👇 Other Methods of Installation

There are other methods of installation available as well. These are described in detail in our documentation.

👇 Need help ?

Join our community Visit our YouTube Channel Tweet with us

👇 Documentation

👇 Call for Contributors

Have you found a bug 🐛 ? Or maybe you have a nice feature ✨ to contribute? The CONTRIBUTING guide will help you get your development environment ready in minutes.

All contributors willing to start coding TRACARDI plugins are urged to read the following beginners' tutorial:

👇 Support us

If you wish to support us, follow us on:

  • Facebook
  • X (Twitter), tag TRACARDI and leave your comments.
  • Subscribe to our Youtube channel to see development process and new upcoming features. Don't forget to turn on the notifications by pressing the bell icon to stay updated about the latest updates and releases.
  • ⭐️ Star the TRACARDI GitHub project - it really matters and puts a smile on our faces.

We are grateful for any assistance that contributes to the popularity of TRACARDI.

👇 Donate

You can support us on Open Collective

👇 Referral programs

You can support us via referral programs by purchasing a service from the following link(s)

DigitalOcean Referral Badge

👇 License

TRACARDI is available under MIT with Common Clause license.

👇 Recent activities

Stargazers repo roster for @tracardi/tracardi

Forkers repo roster for @tracardi/tracardi

tracardi-api's People

Contributors

atompie avatar bobsburgers avatar cypherpunksamurai avatar danieldemedziuk avatar dawidekzagajnik avatar hyprex-deva avatar kaushik-iyer avatar knittl avatar madhavmehndiratta avatar mefpef avatar ojninja16 avatar ryomahan avatar sameersecond avatar tejoooo avatar yk-jp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tracardi-api's Issues

Issue running open source demo installation

There is an issue when running the open source demo installation for 0.8.2 using docker compose. When trying to run the after clone the trucardi-api image is unable to run due to being unable to connect to MySQL. MySQL isn't mentioned anywhere in the docs, I've tried running it separately, tried adding it to the docker-compose.yml file, both unsuccessfully.

Steps:

  • Git clone this repository
  • cd trucardi-api
  • docker-compose up
  • Trucardi-api dumps multiple log lines of being unable to run due to not being able to connect to MySQL.

0.8.1 version works as expected.

Auto events documentation

Describe the solution you'd like
As a tracardi developer I would like to documentation for how to setup auto events on a website.

Javascript integration

I am using javascript in local web page header but getting a below error in the console:
Uncaught (in promise) ReferenceError: config is not defined
at liliput.js:6320:25
at l (liliput.js:130:40)
at t._invoke (liliput.js:360:22)
at Generator.next (liliput.js:185:21)
at f (liliput.js:6112:99)
at o (liliput.js:6114:194)
at liliput.js:6114:364
at new Promise ()
at liliput.js:6114:97
at liliput.js:6432:20
(anonymous) @ liliput.js:6320
l @ liliput.js:130
t._invoke @ liliput.js:360
(anonymous) @ liliput.js:185
f @ liliput.js:6112
o @ liliput.js:6114
(anonymous) @ liliput.js:6114
(anonymous) @ liliput.js:6114
(anonymous) @ liliput.js:6432
(anonymous) @ liliput.js:6805
l @ liliput.js:130
t._invoke @ liliput.js:360
(anonymous) @ liliput.js:185
f @ liliput.js:6112
o @ liliput.js:6114
(anonymous) @ liliput.js:6114
(anonymous) @ liliput.js:6114
(anonymous) @ liliput.js:6859
(anonymous) @ liliput.js:2525
l @ liliput.js:130
t._invoke @ liliput.js:360
(anonymous) @ liliput.js:185
c @ liliput.js:822
o @ liliput.js:844
Promise.then (async)
c @ liliput.js:832
o @ liliput.js:844
(anonymous) @ liliput.js:851
(anonymous) @ liliput.js:840
(anonymous) @ liliput.js:3054
(anonymous) @ liliput.js:3142
(anonymous) @ liliput.js:4545
Be.C.dispatch @ liliput.js:4631
(anonymous) @ liliput.js:4044
(anonymous) @ liliput.js:4043
l @ liliput.js:130
t._invoke @ liliput.js:360
(anonymous) @ liliput.js:185
c @ liliput.js:822
o @ liliput.js:844
(anonymous) @ liliput.js:851
(anonymous) @ liliput.js:840
Be.A.track @ liliput.js:4063
i @ web_page.html:5
(anonymous) @ web_page.html:5
load (async)
(anonymous) @ web_page.html:5
i @ web_page.html:5

Please help me how to use javascript for integration?
This is my web page:

<script>
!function(t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this).tracardi=t()}(function(){return function n(o,i,a){function c(e,t){if(!i[e]){if(!o[e]){var r="function"==typeof require&&require;if(!t&&r)return r(e,!0);if(d)return d(e,!0);throw(r=new Error("Cannot find module '"+e+"'")).code="MODULE_NOT_FOUND",r}r=i[e]={exports:{}},o[e][0].call(r.exports,function(t){return c(o[e][1][t]||t)},r,r.exports,n,o,i,a)}return i[e].exports}for(var d="function"==typeof require&&require,t=0;t<a.length;t++)c(a[t]);return c}({1:[function(t,e,r){"use strict";!function(t){t=t||window;var r=[],n=!1,o=!1;function i(){if(!n){n=!0;for(var t=0;t<r.length;t++)r[t].fn.call(window,r[t].ctx);r=[]}}function a(){"complete"===document.readyState&&i()}t.documentReady=function(t,e){if("function"!=typeof t)throw new TypeError("callback for documentReady(fn) must be a function");n?setTimeout(function(){t(e)},1):(r.push({fn:t,ctx:e}),"complete"===document.readyState||!document.attachEvent&&"interactive"===document.readyState?setTimeout(i,1):o||(document.addEventListener?(document.addEventListener("DOMContentLoaded",i,!1),window.addEventListener("load",i,!1)):(document.attachEvent("onreadystatechange",a),window.attachEvent("onload",i)),o=!0))}}(window);var n=[];window.tracker||(window.tracker={}),window.response||(window.response={context:{}}),window.onTracardiReady={bind:function(t){"function"==typeof t&&n.push(t)},call:function(e){n.forEach(function(t){t(e)})}},function(){for(var r=[],n="liliput.min.js",t=["track"],e=0;e<t.length;e++){var o=t[e];window.tracker[o]=function(e){return function(){var t=Array.prototype.slice.call(arguments);return t.unshift(e),r.push(t),window.tracker}}(o)}function i(){if(console.debug("[Tracker] Rerun callbacks."),void 0!==window.tracardi.default)if(window.tracardi.default.getState().plugins.tracardi.initialized)for(window.tracker=window.tracardi.default;0<r.length;){var t=r.shift(),e=t.shift();tracker[e]&&tracker[e].apply(tracker,t)}else console.error("[Tracardi] Callbacks stopped. Tracker not initialized.");else console.error("[Tracardi] Callbacks stopped. Tracker not initialized. Is script url correct?")}documentReady(function(){var t,e,r;"1"!==navigator.doNotTrack||!0!==(null===(t=options)||void 0===t||null===(e=t.tracker)||void 0===e||null===(r=e.settings)||void 0===r?void 0:r.respectDoNotTrack)?((e=document.createElement("script")).type="text/javascript",e.async=!0,void 0!==options.tracker||void 0!==options.tracker.url||void 0!==options.tracker.url.script?(null!==options.tracker.url.script?options.tracker.url.script.startsWith("http")||options.tracker.url.script.startsWith("//")?e.src=options.tracker.url.script+"/"+n:e.src=options.tracker.url.script:e.src=n,console.debug("[Tracker] Loading: "+e.src),e.addEventListener?e.addEventListener("load",function(t){i()},!1):e.onreadystatechange=function(){"complete"!==this.readyState&&"loaded"!==this.readyState||i(window.event)},(r=document.getElementsByTagName("script")[0]).parentNode.insertBefore(e,r)):console.error("[Tracker] Undefined options.tracker.url.script. This url defines location of tracker code.")):console.log("We are respecting do not track setting. Tracardi disabled.")})}()},{}]},{},[1])(1)});
// Configure tracker

const options = {
    tracker: {
        url: {
            script:'tracardi_latest_version/tracardi-api/app/tracker/liliput.min.js',
            api: 'http//127.0.0.1:8686'
        },
        source: {
            id: "65a550d4-ee3a-4a01-9d1f-0c9839ae6ed5"
        }
    }
}
</script> <script> window.response.context.profile = true; window.tracker.track("test", {"firstname": "abc"}); console.log("successfully load") </script> ​

My First Heading

My first paragraph.

Mapping 0.8.1rc3

When using mapping, if you select equal if does not exist, the parameter will not be assigned to the profile in the event, because the profile is created with a ready-made schema in which the field already exists in the profile with the value "null". If you select append, then the parameter from the event will be added to the profile every time, even if it already exists, as a result we will get an array like ['1','2','1','3']. That is, only Equal works correctly.

I can't import my data to Tracardi

As the title, I can't import data to Tracardi for no reason. I follow this video: https://www.youtube.com/watch?v=rVd64e8dAxo to the minute 3:00 (step: Importing data to event).

When I set the name to the import event:
image

It still shows like this for a long time:
image

I run Tracardi locally via Docker and install step by step [https://github.com/Tracardi/tracardi-api]. The data source is from SQL, I modify in this .json file.
image

Tracardi connects successfully to my server but the last step doesn't work.
image

Please help me. Thank you so much.

Ghost resource documentation

Describe the solution you'd like
As a tracardi admin I would like to documentation for how to setup a Ghost custom integration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.