From 3c7c47c5b1e9f57c2c6c947a35df773cef99d003 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Sat, 4 Nov 2023 13:43:21 +0100 Subject: [PATCH] update readme --- README.md | 99 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 55 insertions(+), 44 deletions(-) diff --git a/README.md b/README.md index 0bc93e26..dab04438 100644 --- a/README.md +++ b/README.md @@ -4,11 +4,12 @@ # mixan -Mixan is a simple analytics tool for logging events on web and react-native. My goal is to make a minimal mixpanel copy with the most basic features (for now). +Mixan is a simple analytics tool for logging events on web and react-native. My goal is to make a minimal mixpanel copy with the most basic features (for now). -* Easy to use -* Own your own data -* GDPR friendly +- Easy to use +- Fully responsive UI +- Own your own data +- GDPR friendly ## Whats left? @@ -16,32 +17,32 @@ Mixan is a simple analytics tool for logging events on web and react-native. My ### GUI -* [X] Fix tables on settings -* [ ] Rename event label -* [ ] Real time data (mostly screen_views stats) - * [ ] Active users (5min, 10min, 30min) -* [X] Save report to a specific dashboard -* [X] View events in a list - * [ ] Simple filters -* [ ] View profiles in a list -* [ ] Invite users -* [ ] Drag n Drop reports on dashboard -* [ ] Manage dashboards -* [ ] Support more chart types - * [X] Bar - * [ ] Pie - * [ ] Area -* [ ] Support funnels -* [ ] Support multiple breakdowns -* [ ] Aggregations (sum, average...) +- [x] Fix tables on settings +- [ ] Rename event label +- [ ] Real time data (mostly screen_views stats) + - [ ] Active users (5min, 10min, 30min) +- [x] Save report to a specific dashboard +- [x] View events in a list + - [ ] Simple filters +- [*] View profiles in a list +- [ ] Invite users +- [ ] Drag n Drop reports on dashboard +- [ ] Manage dashboards +- [ ] Support more chart types + - [x] Bar + - [ ] Pie + - [ ] Area +- [ ] Support funnels +- [ ] Support multiple breakdowns +- [ ] Aggregations (sum, average...) ### SDK -* [ ] Store duration on screen view events (can be done in backend as well) -* [ ] Create native sdk - * [ ] Handle sessions -* [ ] Create web sdk - * [ ] Screen view function should take in title, path and parse query string (especially utm tags) +- [*] Store duration on screen view events (can be done in backend as well) +- [ ] Create native sdk + - [ ] Handle sessions +- [ ] Create web sdk + - [ ] Screen view function should take in title, path and parse query string (especially utm tags) ## @mixan/sdk @@ -66,52 +67,62 @@ const mixan = new Mixan({ verbose: false, saveProfileId(id) { // Web - localStorage.setItem('@profileId', id) + localStorage.setItem('@profileId', id); // // react-native-mmkv // mmkv.setItem('@profileId', id) }, removeProfileId() { // Web - localStorage.removeItem('@profileId') + localStorage.removeItem('@profileId'); // // react-native-mmkv // mmkv.delete('@profileId') }, getProfileId() { // Web - return localStorage.getItem('@profileId') + return localStorage.getItem('@profileId'); // // react-native-mmkv // return mmkv.getString('@profileId') }, -}) +}); + +// Call this before you send any events +// It will create a anonymous profile +// This profile will be merged if you call `setUser` in a later stage +mixan.init(); mixan.setUser({ id: 'id', first_name: 'John', last_name: 'Doe', email: 'john.doe@gmail.com', - properties: {} // any properties -}) + properties: {}, // any properties +}); // will upsert 'app_open' on user property and increment it -mixan.increment('app_open') +mixan.increment('app_open'); // will upsert 'app_open' on user property and increment it by 10 -mixan.increment('app_open', 10) -// will upsert 'app_open' on user property and decrement it by 2 -mixan.decrement('app_open', 2) +mixan.increment('app_open', 10); +// will upsert 'app_open' on user property and decrement it by 2 +mixan.decrement('app_open', 2); -// send a sign_in event -mixan.event('sign_in') +// send a sign_in event +mixan.event('sign_in'); -// send a sign_in event with properties +// send a sign_in event with properties mixan.event('sign_in', { - provider: 'gmail' -}) + provider: 'gmail', +}); // short hand for 'screen_view', can also take any properties mixan.screenView('Profile', { id: '123', // any other properties, url, public -}) +}); + +// Call this when a user is logged out. +// This will just make sure you do not send +// the associated profile id for the next events +mixan.clear(); ``` ## @mixan/backend @@ -123,4 +134,4 @@ Self hosted service for collecting all events. Dockerfile and GUI will be added ![Line chart](images/line.png) ![Bar chart](images/bar.png) ![Dashboard](images/dashboard.png) -![Settings](images/settings.png) \ No newline at end of file +![Settings](images/settings.png)