Skip to content

A Reading System for Improving Reading focus, Speed and Comprehension

License

Notifications You must be signed in to change notification settings

Ahmadkhaled11/Open.Bionic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open|Bionic

Open|Bionic Is an Accessibility Reading System to help ADHD people Increased Focus in their reading sessions and Comprehension. This iteration of the system is OpenSource under MIT License, and for the current version, it uses FastAPI for the backend and Streamlit for the front end, and on the roadmap we would introduce Web technologies for optimized experience while keeping FastAPI to harness cross-platform compatibility if any user needs to use it in a format suits their needs.

What Problem does it solve?

As ADHD person, I suffer from shifting focus especially when reading long content because of ADHD causes executive dysfunction so we easily distracted, but we can't find easy or none commercial accessibility solutions to enable us to have immersive reading experience to enhance our reading flow, which makes us always anxious and fall into procrastination. -@ahmedbenaw

The Idea and functionality analysis confu by @ahmedbenaw, The Product Manager who analyzed the method and tested it using HTML, CSS, and Vanilla JavaScript. They @Ahmadkhaled11 took over the project to create a stable version of Open|Bionic Core to be an open-source repo for the accessibility feature aimed at people with ADHD. The Product Manager (ADHD survivor) is excited to release Open|Bionicc Core and believes it will be a valuable tool for people with ADHD. They hope this will help improve the lives of people with ADHD and allow them to learn, grow, and thrive.

Backend

The backend is built with FastAPI and has two endpoints:

  • The root endpoint (/) which returns a simple JSON message.
  • The /openbionic/{input_data} endpoint which takes a string as a path parameter, splits it into words, and bolds half of each word. It then returns an HTML string in JSON format, where the first half of each word is wrapped in <b> tags.

Frontend

The frontend is created with Streamlit and has a simple interface with a text input field and three buttons:

  • The 'Reproduce' button sends the entered text to the FastAPI server and displays the returned HTML (with half-bold words) on the Streamlit app.
  • The 'Download RTF' button sends the entered text to the FastAPI server and allows the user to download the returned HTML as an RTF file.
  • The 'Download PDF' button sends the entered text to the FastAPI server, converts the returned HTML to a PDF file using pdfkit, and allows the user to download it.

How to run the application

  1. Start the backend server: uvicorn backend:app --reload
  2. Run the frontend: streamlit run frontend.py

Dependencies

  • FastAPI
  • Pydantic
  • Streamlit
  • Requests
  • pdfkit
  • wkhtmltopdf
  • Pillow

Please make sure that wkhtmltopdf is installed on your system and its path is correctly specified in the frontend.py file. Product Roadmap 🚀

  • Rebuilding the core functionalities using web technologies in strict Vanilla JavaScript and FastAPI, to optimize performance. 🛠️
  • Support saving and uploading various file formats (Word, Excel, PDF, ePub, Powerpoint, etc.) on demand 📄
  • Integrate Whisperer API (OpenAI) for text-to-speech feature with accessibility options (pitch, speed, character) 🔊
  • Offer multiple font styles and sizes 🖋️
  • Enable dark mode and letter fixation options 🌙
  • Use OpenAI to tokenize text and control saccade (manual and automatic) 🧠
  • Develop plugins for Kindle, Chromium, Google Drive, Microsoft 365 🔌
  • Add speed reading feature with Whisperer integration 🚀
  • Launch Divergent Readers Annual Challenge to motivate users to set and achieve reading goals using our app metrics 🏆

License

MIT

About

A Reading System for Improving Reading focus, Speed and Comprehension

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages