Code Monkey home page Code Monkey logo

freeflow-note's Introduction

๐Ÿฉตโšก๏ธ decentralised collaboration.ย  ๐Ÿ’ฌ๐Ÿ‘ฉโ€๐Ÿ”ฌ But next generation.

๐Ÿค”๐Ÿ—ฝ what does FreeFlow mean ?

free flow of information is a ๐Ÿ‘ฉโ€โš–๏ธ western term which means that any person or persons and/or any organisation/s can own and operate any media or information agency, ๐Ÿ—ž๏ธ gather any information and ๐Ÿ”‰ disseminate the same, if they so desire , to any target audience, wherever and whenever they want. ๐Ÿ—ฝ

The main idea behind "FreeFlow" is to help the free flow of information.

The essence of free speech is the ability to think and speak freely and to obtain information from others through publications and public discourse without fear of retribution, restriction, or repression by the government.

the same idea as what I said has turned into action many times. for example look at these 2 powerful examples: Wikipedia and Twitter. they both provide a place to share data (mostly as text) almost 100% free of restrictions & by anyone. there are many other examples each targeting a particular kind of audience. we respect them all and not gonna be a duplication.

we are going to fill the gaps we have found in those platforms and provide the idea with a new taste and mindset. it's exactly what forking an idea means. keep reading to learn about the problems it solves and its benefits.


before disscussing about problems we have found and tried to solve, lets simply say what we have in common.

๐Ÿงธ๐Ÿฆ„ exact tools we offer now

  • ๐Ÿ“ Writings : just like any other note taking and text editing platform you can write down and share your ๐Ÿ’ญ thoughts by writing, drawing tables, having โœ… checkboxes and more.

  • ๐Ÿ™‹โ€โ™€๏ธ Asks : 3 type of ๐Ÿค” question can be asked the audience.

    • โœ… multiple choice test,
    • โœ๏ธ text answer
    • and ๐Ÿ—ณ๏ธ polls.

    there are many useful use cases for this unit that will be inclued in real life use cases section of here.

  • ๐Ÿ—‚๏ธ Resources : most probably you've used โ˜๏ธ cloud storage services before. it shares basic functionality with them, where you can upload files by drag and drop and access them from multiple devices of your own or sharing them with others simply with a url. you can also use ๐Ÿ“ƒ PDFs, ๐ŸŽง audios, ๐ŸŒ images and ๐Ÿ“ฝ๏ธ videos directly from the application without even downloading. but it exists there becuase of its role in our forked application. its described right after this section.

  • ๐Ÿ“‚ packs : just like the folders in any operating system of your choice where you have folders to keep everything organized, you can put other units inside a pack and it can also be inside another pack. use any level of nesting a clean file hierarchy needs

๐Ÿ’ก ๐Ÿ“ฆ each of them is a "unit"


๐Ÿ‘ฉโ€๐Ÿ”ฌ ๐Ÿง‘โ€๐Ÿ’ป collaboration : each unit is kept isolated from the others and has its own access levels. you can assign any number of ๐Ÿ‘ฉโ€๐Ÿ’ผ users each with a certain access level. everyone who has write access to something can make chagnes to that.

๐Ÿ’ฌ forums : each unit has a ๐Ÿ“ conversation box under it which can be used to just share thoughts or asking a question about that unit or ... . just like the concept of comments of ๐Ÿ‘ฉโ€๐Ÿ’ปGitHub issues.

๐Ÿ”‹ power of combination. units can be used together. for example a ๐Ÿ“ฝ๏ธ short video is a very nice way to communicate with your teammates about something you both are working to solve. it can be uploaded as a ๐Ÿ—‚๏ธ Resource and be referenced inside a message. as easy as it seems!

๐Ÿค” what benefits do we offer ?

its time to discuss the problems we wanna solve and providing a comparison with alternatives.

๐Ÿ•ฐ๏ธ ๐Ÿง™โ€โ™‚๏ธ Time Machine
always keep track of changes instead of keeping latest chagnes. no overwrite at all ! . it means we exactly know what is happening now and has happened before all over the network. it enables a set of features such as the awesome "Time Machine" ! you can go back in time to match any previous state of anything you want. also human readable interpreted timelines are available.

so any time you delete something, it will not actually delete. just another ๐Ÿ“transaction says that thing is gone. so dont be worried about mistakenly deletions at all any more.

๐Ÿ”“ ๐Ÿ—๏ธ Free. Open. from people, for people
FreeFlow means the code and the content generated by people are both completely open and free to use.

  • ๐Ÿ‘ฎ ๐Ÿชช security: you can exactly know what is running on your device. zero percent of doubt is remaind it terms of your content's privacy and security.
  • ๐Ÿ‘ฉโ€๐Ÿ’ป๐Ÿง‘โ€๐Ÿ’ป community power: unless something like our project exist, the ownership of tools we use everyday will belong to big companies ๐Ÿค‘ . we will need to ๐Ÿ’ธ pay and worse than that we are limited to their opinions ๐Ÿ˜ ๐Ÿ˜‚ . we must get back the public ownership of our frequently used tools.
    • code: with the code being available publicly, anyone can review, test, devlop or make a suggesion. this will make a polished and battle tested application which pleases any taste. read ๐Ÿ‘พ extensibility section below to see awesome security and customization benefits.

    • โœ๏ธ ๐Ÿ”‰ content generating: people can do incredible things together ๐Ÿคฏ. there are many existing โ˜๏ธ platforms trying to host information. though each of them has tried to fill an area with information lack but still there are โ™พ๏ธ unlimited untouched areas to fill. we want to ,help addressing issues like these :

      • ๐Ÿ˜ญ some data even doesnt exist free and publicly
      • ๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ does exist but in a single language
      • โš’๏ธ needs correction or is uncompleted. so it can be improved
      • ๐Ÿค“๐Ÿ‘จโ€๐ŸŽจ is opinionated : people have different thoughts and perspectives. we dont want to unify their thoughts all like what Wikipedia does.
      • ๐Ÿ’ธ many cources and ... need payment or run annoying ads.

      an example of not existence can be ๐Ÿ‘ฉโ€๐ŸŽ“university in my country where we dont have a complete archive of documentations, ๐Ÿ“น short videos exaplaning something hard to understand by a student, ๐Ÿ™‹โ€โ™€๏ธ questions, etc.

      and for non-existence : even though we have a lot of programming tutorials, they are only available in ๐Ÿด๓ ง๓ ข๓ ฅ๓ ฎ๓ ง๓ ฟ English or most used languages at best ๐Ÿ™โ€โ™€๏ธ.

      ๐Ÿ’ต its time to replace buying books, online cources, or paying for educational media. even if a tutorial exists in a website with a thousand annoying ads ...


> Jadi Mirmirani always says these kinds of freedom will shape a better world ๐ŸŒŽ ...

so lets be positive to internatioal society ๐Ÿ™‚๐Ÿ’• !

๐Ÿ•ฐ๏ธโšก๏ธ realtime sync: by using power of websockets and React we keep the UI always reflecting the most edge changes of the network ๐Ÿฅณ. when this is added to awesome compressings and caches solutions, always the data you wanna be updated with is sit locally inside your device ๐Ÿง˜โ€โ™€๏ธ . so any computation such as filtering or sorting is done instantly โšก๏ธ . no more reloads. no more loadings. also no more save button. isn't it wonderful that it just works ๐Ÿฅฐ ...?!

๐Ÿคฉ ๐Ÿ‘พ being extensible in every aspect. do you remember i told you anyone can customize the source code for him/herself ? you can also do the customisation in runtime level ๐Ÿ˜ฌ๐Ÿ’ช๐Ÿ™‚ . i mean, think of a running server somewhere which is serving an instance of our platform; you can :

  • retrieve data from API. you can subscribe to data changes or just get them all at once. then you can

    • ๐Ÿ’… show it in a UI that you have built from scratch for example for any OS ( ๐Ÿ“ฑ or ๐Ÿ–ฅ๏ธ ).
    • ๐Ÿ—‚๏ธ use it as a backup file to make sure nothing's gonna be lost.
    • ๐Ÿ“ˆ do computations and analyzations on existing data; for example charts can be drawn from long time calendar data.
    • ๐Ÿ›ธ anything else ...
  • uploading any data structure : you can upload whatever data you need to an existing server (we call them remotes). dont waste time maitaining your own infrastructure.

    • authentication,
    • memory caches,
    • json special ref pointers,
    • concurrency locks,
    • xz compression,
    • websockets & realtime sync
    • access levels system,


    and much more are already done for you at this very moment of writing ! just focus on what you wanna make work.

    just an instance an awesome feature it enables, is that you can encrypt your data using whatever encryption algo you want. will there be any chance of security issues ๐Ÿคฏ๐ŸคŸ ...?!



๐ŸŒŽ internationality : pInternationality is a part of the platform's ๐Ÿงฌ DNA. so any content written in any language must be available in other languages and this translation is done by ๐Ÿค–๐Ÿฆพ machine learning powered translation tools. it includes any content written by users : written ๐Ÿ“ writings, ๐Ÿ’ฌ people disscussions, etc. so if you want to communicate with someone who doesnt know you language, it doesnt need to necessarily happen in a common language. you type in your own language as same as they do. translation layer takes care of the rest ๐Ÿคฏ ๐Ÿคฉ .

of course application UI and calendars are also available in those languages ๐Ÿ™‚

now these languages and calendars below are finalized to be the starting point.

  • ๐ŸŒŽ English lang
  • ๐ŸŒŽ Persian lang
  • ๐Ÿ“† solar Hijri
  • ๐Ÿ“† Arabic Hijri
  • ๐Ÿ“† Gregorian

๐Ÿ˜ค there is another point to mention : this project doesn't belong for example to a US company. when i opened Notion for the first time it clearly said we can not provide any service to you because of $$cking sanctions against your country. ๐Ÿ’ต also Notion and its alternatives like EverNote offer premium plans but they are expensive for a personal user who doesnt get paid in us dollar. ๐Ÿ’ณ in addition to that someone from for example Iran has not credit card to pay for it even if it worths. ๐Ÿ—บ๏ธ persian language and ๐Ÿ“… calendar are not supported, etc ...

๐Ÿ’„ ๐Ÿ’… User Exprience (UX) :

  • โš™๏ธ stability: we want our platform to be as stable as it can be.

    • ๐Ÿงช testing everything well,
    • ๐Ÿพ tracking issues, and taking ๐Ÿ› bug reports seriously.

    ๐Ÿค” ๐Ÿ’ญ think of an application which any of its parts has been ๐Ÿงช tested many times with any possible situations in mind... ๐Ÿค“


  • ๐Ÿค‘ โš™๏ธ stable but feature rich: some platforms which want to keep their platform stable, are ๐ŸŒ too slow in adding new features because they say stabilisation takes time โฐ. i hope we are not going to be like them!๐Ÿ˜ฌ but if possible.


- โค๏ธโ€๐Ÿฉน ๐Ÿ’– its all about feelings: we are living to feel something `๐Ÿฃ new`, `๐Ÿซ fresh` and `๐Ÿฅฐ awesome`. its not enough to have a stable and feature rich application that only `๐Ÿ‘ฉโ€๐Ÿ”ฌ experts` can take advantage of. we wanna every part of it to make user feel extremely well ๐Ÿคค. `well thought ๐Ÿ‘จโ€๐ŸŽจ designs` and use of user friendly `animations` makes it sweet and easy to use ! think of an elevetor. many many things must work properly in order to it working as expected. but end user has nothing to do with complex stuff. he/she just uses the device by pressing a single button and everything just works ๐Ÿคฉ ... as an end user you must be able to do whatever you wanna do quicly and in a convenient way and only go beyond of that if you want (using APIs and ...). also your ๐Ÿ’ญ feedbacks will be the way that using that we find out what you like and what you dont.

- ๐Ÿ˜ข ๐Ÿ”ฎ Error handling: even if everything is ๐Ÿงช tested, there will be a chance of that something go wrong ๐Ÿ™โ€โ™€๏ธ. in that case, instead of showing annoying alerts like "Something went wrong", we design our application in a way that informs the user what has gone wrong and gives him a way to track the issue until its addressed ๐Ÿพ.

๐Ÿ‘ฉโ€๐Ÿ’ป ๐Ÿ–ฅ๏ธ Developer Exprience (DX) : we will constantly try to improve code's readability and how to use ๐Ÿ“ƒ documentations. we really want to make it sweet for developers to work with code, as much as we wanted for end users.

๐Ÿค” comparison with simliar platforms: before introduction of Assistant, think of differences of Telegram and WhatsApp. they have many features in common. both of them are messaging platforms with hundereds of milions of users. even though they are both like each other but they target two different target audience. WhatsApp is not meant to be used as an archive or to manage super large groups. it's mainly designed to replace traditional SMS and Phone Calls. it's obvious, because it doesnt offer a huge cloud storage which keeps everything forever. in contrast Telegram does offer the cloud storage, super groups, super channels, etc . so its not about being better. each of them meets an specific need. lets continue with Telegram, its far more better than WhatsApp to keep archives. our university's library is currently using it to upload book files. but it's not really designed to do that. news in a super group can easily go far away and lost in short time. its search system doesnt use a full text search engine. you may think of WikiPedia and say why you dont talk about that. WikiPedia is that exact space designed for people so they can complete something freely and by little contributions. its great but it also sucks in those problems mentioned in content generating section in this writing. i think its now clear what our platform have to offer.

๐Ÿค– ๐Ÿ‘พ Unified Assistant: is a powerful text interface which reacts to your text queries by showing you filtered search results and help FAQs. it can also be used to command something. using existing commands you can for example tell it to sort results of this page by time or mark all notifications as read, etc - it also suggests queries which may help you in what you're doing at the moment.

convenient cross platform and beyond: in addition to our web application you can install the application on your machine. whether desktop or mobile:

  • Desktop: using electron js we publish the same web code base as an installable application for windows, mac os, and linux. you most probably have used an application using the same build process : Vs code, Discord, Figma desktop,whatsapp desktop, etc ...
  • Mobile: our frontend is build on top of react and Js. using ReactNative we have plan to publish Android and Ios installable apps. track the progress in issues.
  • web browser extension: it's a shortcut to turn any selection into a new note just by one click.

Coming Soon : there can be extra optimizations in dekstop and mobile applications; like disk caches and native platform's features.

๐Ÿค– ๐Ÿค— real life & awesome use cases

๐Ÿ”œ this part is planned to be done soon.

๐Ÿ™‹โ€โ™€๏ธ how can i contribute ?

to read more about how our team work is done here, please take a look at this guide :

contribution guide

๐Ÿง‘โ€๐Ÿ’ป ๐Ÿ–ฅ๏ธ setting dev environment

you can find out details here :

development guide file

๐Ÿ’ธ donation

for now we dont have a paypal or something to get donations. maybe someday we open such accounts but for now help us through improving the code. (take a look "at how can i contribute" part )

freeflow-note's People

Contributors

hamedpro avatar

Watchers

 avatar

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.