Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redo Feren Store as an all-new website-powered Store #128

Open
dominichayesferen opened this issue Mar 20, 2020 · 7 comments
Open

Redo Feren Store as an all-new website-powered Store #128

dominichayesferen opened this issue Mar 20, 2020 · 7 comments
Labels
Fix Coming A fix is on its way Not a bug This is an intended feature

Comments

@dominichayesferen
Copy link
Contributor

dominichayesferen commented Mar 20, 2020

Package Name or Section of Feren OS where this bug resides
Where does this bug happen? (e.g.: feren-themer-cinnamon) feren-store

Describe the bug
Something I have been wanting to do for a while now is to turn Feren Store into a website-powered Store, just like how Deepin Store/Universal OS Store and Regata OS Store do things. However, until now I've been holding back from trying the idea due to the thought of the work needed to get the website prepared as well as the application backend for the website to work properly.

The end goal is to transform Feren Store into a website-powered Store application along the lines of Deepin/UOS's App Store while not losing out on any key functionality.

GUI Ideas:

  • Keep it SSD
  • Most likely use GTK because of the StackSwitcher widget... preferably use Qt5 otherwise though.
  • Have the top toolbar be application-provided, rather than website-provided
  • Have the rest of the Store window contents be website-provided
  • Keep to the Store design concepts with regards to the toolbar and website parts
  • Have category buttons be togglebuttons that dynamically change depending on what page of the Store website is being viewed
  • Have an 'Installed' button on the right of the categories when installing something (display pending + in progress installs as a number as text) or when updates are available (display 'X Updates Available'). This button would have a 'Download' icon on it aside the text. If no updates are available and nothing is being installed, then it'll be hidden into the profile picture button's menu
  • Have the profile picture on the right be sourced from the user's 'face' - this will, when clicked, open a menu with View Installed Items, Settings and About
  • Toolbar concept:
    (<) [shopping bag] Feren Store (space) All Apps Games Themes [Search Button] [Installed Items button whenever something is being managed or updates available] [Profile Picture Menu]
  • Toolbar concept when viewing an item:
    (<) [shopping bag] Feren Store (space) [Profile Picture Menu]

Website ideas:

  • If possible, import CSS from the user's applied GTK3 theme, otherwise use CSS designed for the Feren OS theme (while not overriding the user theme where applicable)
  • Store the 'Installed' page locally so it can be viewed offline
  • Heavily base the website off of Deepin's and Regata's and primarily also off of official Feren OS concept designs for the Store
  • Show listings for all the packages in the default repositories, however unless they are known curated applications for Feren OS put them at the bottom of results views under a 'Other Results' section
  • Packages that do not normally have an icon to be given a fallback generic package icon in Store
  • Packages without standard application names just get named by their package names in Store
  • Base the list of packages off of XML, possibly, to determine:
    • What their name is in the Store
    • What their package type is (standard, Flatpak, Snap, Lutris, WINE, etc.)
    • What their package is called (URL instead for ICE)
    • Additional package installation 'requirements' (only for standard packages)
    • Description
    • Source Name (e.g.: "Canonical", "Feren OS Team", "Google", etc.)
    • Special package pre-installation script needed?
    • Beta/Unstable package variant package name (optional, would enable the option to go Beta if a valid value and if implemented)
    • Icon Remote URL and Icon Local URL (Local is checked first and if Local isn't found then Remote is tried)
    • Bug Reporting URL
    • Project Website
    • Categories to appear in
  • Have a locale-specific XML for each locale for the Locale, In-Store name and Source Name values to be stored within so that they can be translated freely
  • Have a splash screen when loading the Store with the Store icon in the middle of the page
  • Have XML files for each page's Featured and Top-row Featured Slides items-to-show list
  • Show all the categories below the 'Featured ...' section of All and Apps home pages
  • Hitting Search in the toolbar should toggle a search box appearing on the website with immediate focus to search for some stuff - this should be positioned near the button
  • Have smooth transitions across pages
  • Have working progress bars on the website when managing items
  • On application pages, have a small warning box next to install for the following:
    • Non-curated application (usually just applies to packages)
    • Snap or Flatpak (may have performance and theming issues)
    • WINE (uses a compatibility layer called WINE - this application may have problems it normally does not have)
    • Lutris (this application will be installed through Lutris)
    • ICE (this application may require an internet connection to function)

Backend ideas:

  • Support APT (default repositories only)
  • Support Flatpak (Store-listed only)
  • Support Snap (Store-listed only)
  • Support WINE?
  • Support Lutris?
  • Support Web Apps (ICE)
  • No 'Source' menu unless absolutely necessary in which case it can be a drop-down on 'Install'
  • List info people expect, such as package sizes, etc.
  • Use Debian's Screenshot server if possible as a source of screenshots

Final GUI ideas:
Featured ... blocks:
[icon] Name
Publisher Name (space) [install (in Y middle)]

Can't Connect error page:
[store error icon]
Couldn't Connect
A problem occurred when we tried to connect to the Feren Store. Please try again later.

[ Retry (suggested action) ]
[ Manage Installed Items ]

@dominichayesferen dominichayesferen added the Not a bug This is an intended feature label Mar 20, 2020
@dominichayesferen dominichayesferen changed the title Redo Feren Store into an all-new website-powered Store Redo Feren Store as an all-new website-powered Store Mar 20, 2020
@ItsJamie9494
Copy link

If you are using an HTML-based store, you could set up hidden URL system to tell the back end what to do. For example, if you navigated to store.FEREN OS TLD/storedownload/example-package, the store backend can detect a request to that URL, and do a function (in this case, download a package)

@dominichayesferen
Copy link
Contributor Author

Update: On further consideration, for now the aim is to make this all an offline-stored Store at first to make it so it's all in the package(s) itself/themselves, thus giving us time to prepare for an online store while still giving users a way better Store experience way sooner.

@dominichayesferen
Copy link
Contributor Author

Update 2: On further consideration, I also want to temporarily make the Store's frontend GTK3-based since I have the most experience with making GTK3 applications that have website containers and can manage packages due to the Welcome Screen.
Anyway, idea list incoming:

@dominichayesferen
Copy link
Contributor Author

dominichayesferen commented Jun 25, 2020

Ideas I do want to implement:

Moved to the README.md of New-Feren-OS-Store.

@dominichayesferen
Copy link
Contributor Author

dominichayesferen commented Jun 29, 2020

A few mockups of the design of Welcome Screen's initial appearance:
image
image

rect1432
browsers-page
generic-page
themes-page
websites-page
details-page

@dominichayesferen
Copy link
Contributor Author

Work has now started: https://github.com/feren-OS/New-Feren-OS-Store

@dominichayesferen dominichayesferen added the Fix Coming A fix is on its way label Jul 1, 2020
@dominichayesferen
Copy link
Contributor Author

dominichayesferen commented Sep 28, 2021

Development was reset, however it's progressing nicely on https://github.com/feren-OS/Feren-Storium for a rather new codebase whose main focus is mainly modularity
New-Feren-OS-Store will be moved over to New-Feren-OS-Store-Scrapped and a fork of Feren-Storium will be made once Feren Storium (the skeleton of Feren Store, in a way) is done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Fix Coming A fix is on its way Not a bug This is an intended feature
Projects
Status: In progress
Status: In progress
Development

No branches or pull requests

2 participants