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.
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.
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.
- Start the backend server:
uvicorn backend:app --reload
- Run the frontend:
streamlit run frontend.py
- 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 🏆