LearnNow is a mobile app for reading content, designed to provide a seamless reading experience with a simple authentication module to ensure that your progress is saved and secure.
The app features a user-friendly interface, with a list of contents divided into chapters, each with multiple sections. These sections include both text and images, providing a rich and engaging reading experience.
Simple username-and-password based authentication to access the app.
The content from the backend is organised into chapters and sections for easy navigation. Additionally, the last-read section is pinned to the top of the Chapters
screen, to jump straight back to reading.
Not only does the app remember the last section you read, but it also tracks the exact position in the section you stopped at. This works for all sections, which especially helps those who like to jump back and forth between sections. The overall progress through each chapter is also shown as the number of sections read, with each completed section marked.
Moreover, the read progress is saved to your username, meaning multiple users can use the same app on the same phone and still have their individual progresses right there when they need it.
learnnow.mp4
Every sections can contain both text and images, enhancing the reading experience with more context.
Users can also change their passwords or logout from the Profile
screen.
Frontend (mobile app)
- React Native framework
- NativeBase UI component library
Backend
- Django framework
- If you wish to use
venv
, activate it usingsource path/to/venv/bin/activate
. - Ensure Django dependencies are installed.
cd
intoLearnNow/backend
.- Start the server with
python manage.py runserver
.
On an Android simulator
- Start the Android virtual device (AVD).
- For a list of AVD names, use
emulator -list-avds
. - To start an AVD, use
emulator -avd @avd_name
.
- For a list of AVD names, use
cd
intoLearnNow/mobile
.- Ensure the app dependencies are installed.
- Start Metro with
npx react-native start
. - Install and run the app with
npx react-native run-android
in a new terminal window.- To install on a specific devices, use
npx react-native run-android --deviceId=@device_id
. - The list of device IDs can be shown with
adb devices
.
- To install on a specific devices, use