Skip to content

Better together - an app to realize dreams together.

License

Notifications You must be signed in to change notification settings

zigamacele/ZinZen

 
 

Repository files navigation

ZinZen®: a platform for planning your purpose(s).

ZinZen® gives you the peace of mind to live in the now by making sure that:

  • your life is on track with your priorities/goals
  • your planning calendar is realistic
  • you won't forget anything important

It is also a way to collaborate efficiently with others to achieve shared goals.

  • The first phase is a smart todo-app for a single individual.
  • The second phase will be collaborative.

A lot of things in life can be managed by making lists (of lists...) with constraints and dependencies between them.

See ... for some ideas.

Run the app online: stable version or latest version

stable version : prod-build

...or run a pure local copy:

First, make sure you have installed Nodejs version 18+

git clone https://github.com/tijlleenders/ZinZen.git
cd ZinZen
npm install
npm run dev

ZinZen® design principles

  • (F) Free
  • (E) Easy
  • (SS) Simple & Safe

Also see our overall guiding principle: Be good.

Free

  • F.1 No ads. Not now, not ever - period.
  • F.2 Free as in as little cost as possible to download and use. Not being in app stores* is a consequence of this. Choosing for an offline-first webapp we can let you run most of the app for free - since it uses the resources on your phone and we only provide the software.
  • F.3 Free as in open source. We're AGPL v3 licensed.
* ZinZen® is not developed/published for iOS as they have a fundamental incompatibility with GPLv3. The Free Software Foundation doesn't want GPLv3 apps in Apple Store (as Apple adds additional restrictions), and vice-versa. In general, at this moment we're not convinced the benefits of app stores outweigh the costs.

Easy

  • E.1 One person in a team/family/group can use ZinZen® as their primary todo-tool without negatively affecting the others, even if they use a different tool.
  • E.2 No tutorials up-front, but as-you-go: when buttons/actions are first used a quick explanation is shown and connected preferences can be set after using the feature a few times (not on first use).
  • E.3 Fast touch/click feedback (<100ms) so cause-effect connection between user action and interface response is clear. Offline-first makes this easy.
  • E.4 Easy to correct mistakes so undo/redo button not required.
  • E.5 No complicated config menu's but a simple list with clear explanation/example of settings.
  • E.6 Non-intrusive tips/reminders on features the user never seems to use.
  • E.7 Suggestions for more efficient way when app detects user doing same (inefficient) thing more than x times.
  • E.8 Internet or gps not required (design for offline first as not everyone has internet/gps all the time - by choice or necessity).
  • E.9 Scalable so app does not become slow or unusable when user has lots of data or when many users use it.
  • E.10 No ads as these negatively affect user experience (and introduce security risks).

Simple & Safe

  • SS1. Stick to the goal, and only the goal. Like Linux bash commands, ZinZen® should do one thing, and do it well: help you figure out what to do and when. For example, is not necessary to re-invent document or image storage/editing tools, just point to or integrate with the one the user prefers, if this is needed at all.
  • SS2. Favor simplicity over complexity in the user interface as well as in the code base.
  • SS3. End-to-end encryption (TLS + encrypted storage sufficient pfor current features (single user), if necessary implement an open source end-to-end encryption protocol (ie signal protocol) at a later time).
  • SS4. Privacy by design and by default. ZinZen® does not want or need to know who you are. You don't require a phone number or email to register. Even better: you don't even have to register at all if you prefer because you can use the app purely offline or sync with your own servers instead of the official ZinZen® servers (To make this possible whilst guaranteeing negative user experience, the quality of your own servers is monitored by the app so you will get a suggestion to switch to ZinZen® servers if your own private servers negatively affect performance). This resolves the concern some other open source app maintainers have about allowing you to use your own private servers (ie Signal chat app).
  • SS5. If you want to help improve ZinZen® you can turn on pseudonimized user statistics. This option is turned off by default.
  • SS6. No ads as these introduce security risks (and negatively affect user experience).

Scheduling Algorithm

The implementation of the ZinZen® scheduling algorithm can be found at the ZinZen-scheduler GitHub page.

How to contribute?

There are many ways to contribute... not only code!
https://opensource.guide/how-to-contribute/
Please mind the code of conduct.

We plan our work on the ZinZen® project board. Have a look!

if Rust, WASM and scheduling algorithms are your domains of interest, please consider contributing to the ZinZen-scheduler.



Frameworks used

UI : react-bootstrap antd
Testing : Cypress
CI/CD : GithubActions and Vercel
Internationalization : i18next
Progressive Web App : workbox
Animations : just CSS

Legal stuff

©2020-now ZinZen®;

This code is licensed under AGPLv3 but this license does not implicitly grant permission to use the trade names, trademarks, service marks, or product names of the licensor, except as required for reasonable and customary use in describing the origin of the Work and the content of the notice/attribution file.

ZinZen® supports an open and collaborative process. Registering the ZinZen® trademark is a tool to protect the ZinZen® identity and the quality perception of the ZinZen® projects.

About

Better together - an app to realize dreams together.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 86.0%
  • SCSS 8.6%
  • JavaScript 4.7%
  • Other 0.7%