update readme
This commit is contained in:
99
README.md
99
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
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
Reference in New Issue
Block a user