A bookmarking app specialised towards online webnovels

Overview

banner

Dart Flutter Android PR License OpenSource


Junior demo

Junior dares! to make a novel bookmarking app specialised for online webnovels. Initially inspired by this thread on r/noveltranslations, I wanted to create a novel managing app that can handle more data than any notes taker, while also looking way better and still being as easy to use.

Junior is an open-source Android app that helps you catalogue the novel you're reading and your progress on it. Apart from these details, you can also log your personal rating and any chapter notes for the current novel. There's a demonstration of the working to the right ⟶


Table of Contents


Installation

To install Junior you can find the current release on the Play Store. If you want to make it harder for yourself, you can also download the apk from this drive folder and install it on your phone.

The app as it is right now is only available on Android and in dark mode. To request additional features or report a bug in the app, just create an issue on the repository.


Usage

As it is right now the app lets you View your reading list in a far better way than any notepad would. The initial homescreen shows your novel list and sort order (Alphabetical, Most Recent or Rating). You can also search for a particular entry with the search bar.

The Details you can log for any novel are:

  • Title
  • Current and Total Chapters
  • Personal Rating
  • Link to the Current Chapter
  • Chapter Notes or Novel Review

Development

I intend to make this a proper open-source project so the following sections are about developing and modifying the existing app. There's stuff from Navigation to Contribution Guidelines so do check it out if you're helping out!

Navigation

Junior/
├── assets/
│   └── banner.png
├── README.md
└── src/
    ├── android/..
    ├── build/..
    ├── assets/..
    ├── test/..
    ├── lib/
    │   ├── details_page/
    │   │   ├── body.dart
    │   │   └── components/..
    │   ├── homepage/
    │   │   ├── body.dart
    │   │   └── components/..
    │   ├── model
    │   │   └── novel.dart
    │   ├── main.dart
    │   └── theme.dart
    ├── pubspec.lock
    ├── pubspec.yaml
    └── src.iml

In case it's not obvious, src/ contains all source files for the application, top level assets/ contains assets for the repo and README, assets/ in src/ contains application data like the icon and all.

I've divided the application into subdirectories the way it makes sense to me. main.dart runs the entire thing, theme.dart contains constants for commonly used colors and more. The only model is novel.dart, which contains code for the Novel class, its attributes and all methods involving reading and writing to memory.


flutter_screen
├── body.dart/
└── components/
    ├── button.dart
    ├── list_tile.dart
    ├── searchbar.dart
    └── title.dart

A page looks something like above, with a body and a subdirectory of widget components. body.dart contains only top level information on how to place the widgets while the actual widgets will be in components/. Even if it's something as simple as a Text(), please make a separate class for it, it makes it super easy to re-arrange stuff later on.

And that's about it for navigation! This is the layout that I feel is most intuitive and easy to work with tbh.


Getting Started

TODO


Contributing

TODO


Other Stuff

Stuff I need to add or attribute but didn't get a place in the section before

Comments
  • Add dynamic link generation based on chapter

    Add dynamic link generation based on chapter

    If i put in the "link" field the link of the novel i then always need to open it and search for the correct chapter between (sometimes) literally thousands of others. Luckily a lot of novel websites use a simple NameOfTheWebsite.com/name-of-the-novel-ChapterNumber Example: https://boxnovel.com/novel/the-tutorial-is-too-hard/chapter-307/

    My request is to add a feature that dynamically generated the correct link with the right chapter: Example input by the user (when creating the novel) https://boxnovel.com/novel/the-tutorial-is-too-hard/chapter-FUZZ/ The app logic searches for the word FUZZ (make it whatever you want) in the string and replaces it with the chapter number, this final link is the one that will be opened when you touch the "Link to novel" button in the homepage There should also be a switch for this functionality when creating a novel because some sites don't follow this pattern for their URLs or require a few options to work correctly Example https://dreamsofjianghu.ca/2018/10/18/adnd-001/ needs 0-padding on the left to make the number always 3 digits (here adnd is the short name of the novel) Another example: this website appeared to have a linear progression that started from an high number but it's not always the same: Chapter 11= https://m.wuxiaworld.co/Cultivation-Chat-Group/1253538.html Chapter 12= https://m.wuxiaworld.co/Cultivation-Chat-Group/1253539.html (just +1) Chapter 13= https://m.wuxiaworld.co/Cultivation-Chat-Group/1046598.html (wtf) Chapter 14= https://m.wuxiaworld.co/Cultivation-Chat-Group/1253540.html (and we are back to normal) So instead of adding support for all of these it's better to simply disable the function when needed.

    Enhancement Help Wanted 
    opened by Redev22 9
  • Select all text for certain TextFields

    Select all text for certain TextFields

    Is your feature request related to a problem? Please describe. When updating chapter numbers and all, selecting the text box puts down a caret right where you press it. This is useful for the notes and title section maybe but all the other textfields (currChapter, totalChapters and novelLink) seem like they need to be selected all at once when pressed.

    Describe the solution you'd like Simply make it so onPress on these textfields (currChapter, totalChapters and novelLink) selects all the text within

    Additional context This stackoverflow answer seems like a good place to start. But if you can do it without passing a textController, that's be best. Something like what I've done here by creating a new one for specifically for that function.

    https://github.com/OverPoweredDev/Junior/blob/b7c74dce5f92749941b8a685e83f6b73f0418cd8/src/lib/details_page/components/chapter_progress.dart#L74-L78

    Enhancement Help Wanted Good First Issue 
    opened by OverPoweredDev 7
  • Select all the text inside the textfield

    Select all the text inside the textfield

    Is this pull request linked to an issue?
    Issue #6

    Changes proposed in this pull request
    Created TextEditingController for all the textfields then added required parameter 'Controller' to the ChapterInputField constructor and also created the 'selectAll()' function which is called in the ChapterInputField class, it helps in selecting all texts inside the textfield and then implemented this feature to every textfield.

    opened by Samdid 6
  • Add flutter-lints Dependency

    Add flutter-lints Dependency

    Is your feature request related to a problem? Please describe. Yes, In issue no #1 there is need of flutter-lint dependency, because we need to test our app using GitHub Actions. Github Actions help us to automate our software development workflows in the same place we store code and collaborate on pull requests and issues. The speed of Github Actions is good, and its pricing is better than that of Travis.

    Describe the solution you'd like Linting is the process of analyzing a source code for any programming error, stylistic errors or any bug that can occur in the code. It is helpful, if you are working in a team, that way the whole team will follow some specific rules in the codebase. It's also helpful in identifying some common and uncommon mistakes that are made during coding like logical errors, unused variables etc.

    Additional context This is the package i propose to use here, https://pub.dev/packages/flutter_lints

    Enhancement 
    opened by Neha62-lit 4
  • Implement some more basic Features

    Implement some more basic Features

    Add some more basic features to the app

    • [x] Implement method to mark Novels as JP, CN or EN
      • [x] Add a volume counter (v4c3/v5c6) for JP Novels
    • [x] Mark as Complete, on Hiatus, MTL, etc. with various state changes
      • [x] On Hiatus should remove the final chapter count
      • [x] Complete matches currChapter with totalChapters
    • [x] Add Grouping features for the above
    Enhancement 
    opened by OverPoweredDev 3
  • Add Automated Testing to project

    Add Automated Testing to project

    Is your feature request related to a problem? Please describe. The project as it is right now has no testing. Commits are pushed directly to main and while not a problem usually, some tests would really be appreciated

    Describe the solution you'd like add flutter tests in src/lib/tests that run locally. Additional bonus if it's automated with Github Actions or TravisCI or something

    Describe alternatives you've considered Other automation CI tools are there but Actions would be best really

    Enhancement Help Wanted Good First Issue 
    opened by OverPoweredDev 3
  • Issue from User on GitReports

    Issue from User on GitReports

    Submitter: Dylan Fernandes I dont know what is SUPPOSED to happen when I press the export button because nothing has happened when I've pressed it, no prompt to ask where to save it or no confirmation pop up either

    Bug Enhancement Help Wanted 
    opened by OverPoweredDev 2
  • Replace existing bug report options

    Replace existing bug report options

    Is your feature request related to a problem? Please describe. The current bug report and feature request options just launch a link to the issues tab in this repository. While useful for devs, normal users can't be expected to have a github account.

    Describe the solution you'd like I've created a page on GitReports, linked here that can replace the existing links. Just replace the existing links with the new one

    Here's the url for the page: https://gitreports.com/issue/OverPoweredDev/Junior

    https://github.com/OverPoweredDev/Junior/blob/d1113e8e55681c1aca9d30e419d76aadd632179c/src/lib/settings_page/body.dart#L223-L226

    Enhancement Help Wanted Good First Issue 
    opened by OverPoweredDev 2
  • Look for a new Sorting interface

    Look for a new Sorting interface

    Is your feature request related to a problem? Please describe. The current sorting interface is just a Dropdown with a whole buncha options. It's still alright at this point but it will begin to look very ugly later on

    Describe the solution you'd like A new Interface/Widget for the sortOptions class. One that ideally wouldn't look bad even with a buncha options

    Additional context I get that this is a bit vague but I really can't help it 😅. Just discuss your idea in the comments before implementing anything please

    Enhancement 
    opened by OverPoweredDev 2
  • Add new Tag for 'To Read' Novels

    Add new Tag for 'To Read' Novels

    Is your feature request related to a problem? Please describe. Noting down novels that you intend to read (sometime) is not possible with the current Release

    Describe the solution you'd like Add a 'To Read' tag similar to 'On Hiatus' that'll be set to novelStatus, along with an option to sort for it

    Enhancement Help Wanted Good First Issue 
    opened by OverPoweredDev 2
  • Added flutter-lints Dependency

    Added flutter-lints Dependency

    Is this pull request linked to an issue?
    #9

    Changes proposed in this pull request

    1. Added flutter-lints Dependency in pubspec.yaml
    2. Created analysis_options.yaml file in root directory of project.
    3. Automatically changes happened in the files after adding the dependency those support for the linting.
    opened by Neha62-lit 2
  • Junior suddenly deletes list of novels after using search button

    Junior suddenly deletes list of novels after using search button

    Describe the bug When I type in a keyword in the search bar, the selected novels appear. But when I delete the words, the rest of the novels that went invisible, never appear again. When I add a recently read book to the list, it appears in said list and reappears when i repeat the search process above. But the rest of the novels never appear ever again, forcing me to import the data and re-add the novel lest i lose my previous progress.

    Steps to replicate bug

    1. Go to 'Search Bar'
    2. Type in any keyword
    3. Delete the keywords once list of novels appear
    4. See error of previous novels not appearing

    Expected behavior Was honestly expecting the search function to work as per normal (Deleting keywords should bring back the hidden novels), not delete my progress.

    Screenshots Tried replicating. It doesn't work anymore but it happened twice, so I don't see why it won't happen again. Tbh I'm not sure how this bug happened but I'm pretty sure it's related to the search function.

    Desktop (please complete the following information): N/A

    Smartphone (please complete the following information):

    • Device: Samsung Galaxy Note 10+
    • OS: Android
    • Browser: Chrome
    • Version: 11

    Additional context N/A

    opened by Raemmie 1
  • Fix the weird sorting issue in Reading Lists

    Fix the weird sorting issue in Reading Lists

    Is your feature request related to a problem? Please describe. Novels get re-ordered weirdly whenever I select a tag.

    Describe the solution you'd like Maintain the selected sort option while in a tag

    Bug Enhancement 
    opened by OverPoweredDev 0
  • Fix Novel Export Issue

    Fix Novel Export Issue

    Submitter: Ana Lopes The moment I noticed the error, I don't think I did anything different, except that it's the 'second time' I've downloaded the app and on another device – using the backup I uploaded in a certain cloud app– (ie I am a 'new user' in this device).

    When i was exploring the mobile phone files, didn't find: • Junior's folder (where are the backups kept) which is usually found under 'Downloads' on the mobile; • The folder from the application that I usually find in Android > Data > com.app store developer name.app name (in case I think it is com.overpowered.junior).

    I checked the app permissions and the memory permission is enabled, so I thought this was an unusual occurrence (that maybe it's directly related to the fact that it's not possible to export data at the moment, but I don't understand) hence the reason for this report. I know absolutely nothing about programming, so don't know what the bug can be generate, my reporting can be a bit useless at this moment. Sorry. Thanks for the app, it's amazing! :D

    Bug Partially Solved 
    opened by OverPoweredDev 9
  • Add a Plus/Minus button to increment chapter count from the HomePage

    Add a Plus/Minus button to increment chapter count from the HomePage

    Submitter: Willshaper After clicking a novel in the list, a plus and minus button to edit chapter numbers easily (without having to type out the number in update details) would be nice to have.

    Enhancement Help Wanted 
    opened by OverPoweredDev 5
  • Add Widget Testing

    Add Widget Testing

    Is your feature request related to a problem? Please describe. The project as it is right now has no testing. Commits are pushed directly to main after a formatting check and while not a problem usually, some tests would really be appreciated.

    Describe the solution you'd like modify and update the files in Junior/src/test/

    Additional context Thanks to #12, we now have automated testing for the project, but it only consists of a format check and an Empty test that only runs the app and closes it. So all the background stuff is clear, we just need to add widget testing

    Enhancement Help Wanted 
    opened by OverPoweredDev 2
Releases(v1.4.0)
  • v1.4.0(Dec 7, 2021)

    Sorry for the delay folks, Exam season where I live right now. Anyways, big update, this one. We got:

    𝗥𝗲𝗮𝗱𝗶𝗻𝗴 𝗟𝗶𝘀𝘁𝘀!!! All tags now double as reading lists. So you can group novels together by those if you want to. Detailed explanation (as with the others) in the FAQ's

    𝗗𝘆𝗻𝗮𝗺𝗶𝗰 𝗟𝗶𝗻𝗸𝘀 Links are now dynamic! A lot of novel websites use a simple 𝘯𝘢𝘮𝘦.𝘤𝘰𝘮/𝘯𝘰𝘷𝘦𝘭/𝘤𝘩𝘢𝘱𝘵𝘦𝘳𝘕𝘶𝘮 format. So the basic idea is to automatically (dynamically) replace the 𝘤𝘩𝘢𝘱𝘵𝘦𝘳𝘕𝘶𝘮 part with your progress entered. Check the FAQ page for more details.

    𝗙𝗔𝗤 𝗣𝗮𝗴𝗲 New FAQ page, down in the settings menu. Check it out! I'd actually love some design input on that, looks kinda plain to me...

    𝗡𝗼𝘃𝗲𝗹 𝗘𝘅𝗽𝗼𝗿𝘁 𝗜𝘀𝘀𝘂𝗲 There's an issue with some folks regarding this setting. Check the FAQ page from Settings for that.

    Source code(tar.gz)
    Source code(zip)
  • v1.3.1(Oct 15, 2021)

    𝗥𝗲𝗹𝗼𝗮𝗱 𝗕𝘂𝘁𝘁𝗼𝗻 (𝗝𝘂𝘀𝘁 𝗦𝘄𝗶𝗽𝗲 𝗨𝗽) I got a lot of complaints of the app suddenly not showing any novels and only working when opened again. I've tried to fix the underlying issues too but as a hotfix, just swipe up to reload your novel data

    𝗨𝗽𝗱𝗮𝘁𝗲𝗱 𝗕𝘂𝗴 𝗥𝗲𝗽𝗼𝗿𝘁 𝗟𝗶𝗻𝗸𝘀 The Bug Report and Feature Request Links now don't need you to log in to Github

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Oct 10, 2021)

    𝗠𝗮𝗷𝗼𝗿 𝗨𝗽𝗱𝗮𝘁𝗲 (𝟭.𝟯.𝟬)

    This Young Master has been silent but that's only to break through the bottleneck and reach a whole new realm! Junior has recieved a lot of contributions and nearly a month's worth of effort later, it now supports:

    𝗩𝗼𝗹𝘂𝗺𝗲/𝗖𝗵𝗮𝗽𝘁𝗲𝗿 𝗦𝘂𝗽𝗽𝗼𝗿𝘁 Click on the 'Volume' word in the details page for any novel and you'll find support for adding Volumes along with Chapters! This was heavily requested when I'd posted about Junior so I'm glad I could get this out.

    𝗡𝗲𝘄 𝗦𝘁𝗮𝘁𝘂𝘀𝗲𝘀 Novels now aren't just Ongoing or Complete. Tap on the status next to your chapter count to cycle it through Ongoing, Complete, To Read and On Hiatus.

    𝗡𝗼𝘃𝗲𝗹 𝗧𝗮𝗴𝘀 A change I'm particularly excited about! Novel Tags can be entered as a comma separated list in the Details Page and it'll show up as a proper list of tags on the Novel Tile on your home page. So you can finally mark your Novels by Language, Genre, Website, anything else you want!

    ??𝗺𝗽𝗿𝗼𝘃𝗲𝗱 𝗦𝗲𝗮𝗿𝗰𝗵 Search doesn't only search by title anymore. Try inputting your notes, your rating, the novel tags or even the link you've given. Works for all of these!

    Finally, there are minor updates like showing a small tooltip after updating, etc. but those don't affect your experience. So try out all the new features and be sure to let me know how they feel!

    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(Sep 10, 2021)

  • v1.0.1(Sep 9, 2021)

  • v1.0.0(Sep 5, 2021)

Owner
Omkar Prabhune
CSE Major at VIT Pune
Omkar Prabhune
Open Source app to view Free resources available online.

University Open Source app to view Free resources available online. The resources would be condesed into roadmaps provided by mentors skilled in their

Aditya Thakur 23 Sep 3, 2022
Plants online shopping app using flutter firebase as backend.

planta A new Flutter application. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if th

Musthafa Ap 0 Nov 7, 2021
Online wallet app for money transfer and bill payment.

shapshapcoins Payment Platform Getting Started This project is a starting point for a Flutter application. A few

Ndoye Philip Ndula 1 Nov 14, 2021
A chatting app made with Flutter and FireBase. It supports GIPHY gifs, images, stcikers, dark mode, custom animations, google login, online storage, beautiful UI and more.

ChatMe A Flutter based chatting app which lets user chat from random peoples or strangers, has GIPHY gif support, sitckers, custom animations, dark mo

Hash Studios 20 Nov 7, 2022
Flutter-Online-Shopping - E-commerce App UI with Flutter

Flutter-Online-Shopping On our E-commerce app UI has two pages one for the produ

Le Gia Huy 2 Jun 22, 2022
Online Shop App with Clean Architecture, Bloc and Freezed

Online Shop App with Clean Architecture, Bloc and Freezed The aplication is a sm

cindi_star 32 Dec 22, 2022
Obfuscate sensitive data in your pictures before sharing them online.

Privacy Blur A cross-platform application to obfuscate sensitive data from images, targeting iOS and Android devices. Mainly written in dart with the

MATHEMA GmbH 78 Dec 30, 2022
A Ecommerce application where you can buy stuff online

eazeal A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

Sameer Pokharel 3 May 26, 2022
Flutter application for the online hackathon MORE.tech 3.0 from VTB

vtb_hack_mobile Игра (мобильное приложение) для онлайн-хакатона MORE.tech 3.0 от ВТБ Скриншоты Getting Started For help getting started with Flutter,

Mirea Ninja 8 Nov 10, 2022
Music reader for online data (Google Drive implementation). Cross platform goal : iOS, Android, MacOS, Windows

omusic A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

JeanNicolasdeLamballerie 0 Nov 30, 2021
✈️ A tidy utility to handle offline/online connectivity like a Boss

✈️ Flutter Offline A tidy utility to handle offline/online connectivity like a Boss. It provides support for both iOS and Android platforms (offcourse

Jeremiah Ogbomo 845 Jan 2, 2023
Andriod online chat application using flutter.

hi i am Bubai das make this andriod online chat application using flutter. requirement A Functional Requirement (FR) is a description of the service t

null 0 Nov 24, 2021
Flutter application for the online hackathon MORE.tech 3.0 from VTB

vtb_hack_mobile Игра (мобильное приложение) для онлайн-хакатона MORE.tech 3.0 от ВТБ Скриншоты Getting Started For help getting started with Flutter,

Mirea Ninja 8 Nov 10, 2022
Instagram is a free, online photo-sharing application and social network platform

Instagram is a free, online photo-sharing application and social network platform that was acquired by Facebook in 2012. Instagram allows users to edit and upload photos and short videos through a mobile app.

Behruz Hurramov 4 Dec 6, 2022
Dio desafio chatonline flutter firebase - Developing an Online Chat Application Integrated with Firebase

Desenvolvendo um aplicativo de Chat Online integrado ao Firebase Descrição Neste

Yian Zaratin 1 Jan 4, 2022
Keep track of coding contests on various online judges.

Code Calendar keep an eye on active contests on various online judges and add them as an event to your calendar. Install Flutter SDK throught Android

null 2 Nov 15, 2022
Resor is based on an online ordering system instead of traditional paper menus in restaurants

Resor Restaurant Order App Resor is based on an online ordering system instead of traditional paper menus in restaurants. The online ordering system h

Serdar Aksoy 4 Nov 13, 2022
A new Flutter Doctor Online Appointment application.

Flutter Doctor Online Appointment App A new Flutter Doctor Online Appointment application. Designed by Gilang Segara, Code using Flutter by Abdul Aziz

Abdul Aziz Ahwan 20 Nov 21, 2022
Flutter Grocery Shopping App (Mobile App, Web App)

Grocery-App (Widle Studio - A Creative Flutter App Development Company) OR Get an Estimate Flutter Grocery Shopping App Fully Working Template with Wo

Widle Studio LLP 811 Dec 29, 2022