Intial wiki commit

Manish 2020-05-11 20:15:17 +10:00
parent e7ce051005
commit 037742c51e
6 changed files with 142 additions and 1 deletions

1
.gitignore vendored Normal file

@ -0,0 +1 @@
*-private.md

30
Developer-Guide.md Normal file

@ -0,0 +1,30 @@
If you face difficulty following this guide than submit a pull request and work through the feedbacks until PR is accepted.
# Pull Request Checklist
- [ ] Lint code with [flake8](https://flake8.pycqa.org/en/latest/)
- [ ] Run all tests with meta test script
- [ ] Write own contribution test, include it in pull request and in meta-test script
# Style Guide
See Sugar Labs [python](https://github.com/sugarlabs/sugar-docs/blob/master/src/python-style.md), [JavaScript](https://github.com/sugarlabs/sugar-docs/blob/master/src/javascript-style.md) and [web](https://github.com/sugarlabs/sugar-docs/blob/master/src/web-style.md) style guide as well.
* **Casing**: camelCase . Simply because it is the most common casing convention with JS users and found it in most Sugar Labs repositories.
* **Naming convention**:
* Full name preferred over abbreviations/cryptic names unless very obvious
* Name intent instead of process
* **File size**: Splitting code into smaller files is preferred. Easier to navigate following tree/hierarchy and less intimidating to readers.
* **No minification**: As per sugar labs style guide, HTML, CSS and JS should not be [minified](https://www.webnots.com/what-is-minification-of-css-javascript-and-html/). If using any templating than make sure page generated are readable and conform to project style guide.
# Testing/Quality Assurance
See Sugar Labs [python coverage](https://github.com/sugarlabs/sugar-docs/blob/master/src/python-coverage-guide.md) guide as well.
* If you encounter any bug/regression during development. Write it down and write test for it after done with task at hand.
* Update tests affected by your changes.
* Write own code changes/addition test.
## Writing Unit Tests Process
* First write test case in plain English. Take corner cases into account.
* Prepare sample/test data input and output/expected result
* Write unit test
* Ensure maximum possible/practical coverage of test
* Include test case as comment in test code. Include test data input and output as well in PR if relevant.

17
Home.md

@ -1 +1,16 @@
Home This wiki is for project management. App store documentation will be in app store repository only.
# Ways to contribute
## Everyone
* Test and [report](https://github.com/free-libre-software/sugarappstore/issues) bugs or difficulties you might encounter.
* Write tutorials and guides for generating and using app store and create pull request in app store.
## Developers
* Contributing code. Please see [requirements](Requirements), [priority list](Priority-List), [long list](Long-List) and [issues](https://github.com/free-libre-software/sugarappstore/issues) reported on GitHub to find ways you can contribute code. Please see [developer guide](Developer-Guide) for PR checklist, style guide and how to write tests.
* Reviewing and commenting on PRs and commits.
# Requirements
If anything is missing in [requirements](Requirements) that needs to be implemented than please mail it to the <a href="mailto:sugar-devel@lists.sugarlabs.org,sugar@radii.dev?subject=Re: [Sugar-devel] Updates: Python3 app store (aslov4)">mailing list</a>.
Features/enhancements which are not part of requirements are in [Long List](Long-List). If find bugs, create PR fixing them or [report](https://github.com/free-libre-software/sugarappstore/issues) issue.

17
Long-List.md Normal file

@ -0,0 +1,17 @@
# Features/Enhancements
## Search
* Search box on all pages. Write a template html code and embed in all pages.
* Filter search results by tags
* Show all search results and not just first 10. Show all at same time or truncated with auto scroll?
* Combine search + browse functionality. All activities displayed initially and have option to filter by tags which becomes browse functionality for all apps and for search keywords as well.
* Partial search ranking function eg. 'car' for query 'cars' & vice-versa
* Search spell correct and suggestion. Thanks! [@srevinsaju](https://github.com/srevinsaju) for suggestion.
Recommend closet matching keyword from index (up to a matching threshold like 60%) else suggestion some app or tag from index. Suggestion can be based on probability distribution of app & tags (popularity of apps with that tag) popularity i.e. download counts.
# Code Quality
## Python code/generator
* Use logger from python standard library
* Process bundles one-by-one and split extractData.extractInfoAndIconFromBundles(). Find if extractData.generateIndex() can be further simplified or split.
## Windows Support
Make python code windows compatible so that developers and users can developed or generate app store on windows platform as well.

6
Priority-List.md Normal file

@ -0,0 +1,6 @@
# Feedbacks to implement
* Show version of the activity
# Requirements to implement
- provide a list of all activity bundles,
- detect User-Agent of Fedora 18 systems running Sugar 0.112 or earlier, and redirect to activities.sugarlabs.org,

72
Requirements.md Normal file

@ -0,0 +1,72 @@
# Requirements
- App store should work offline similar to python offline documentation including client side search functionality. There should be no need of any backend.
- App store can be downloaded, generated by anyone and can be carried in pen drive, hosted on raspberry pi and work without internet in remote regions.
> Users of a Sugar activities app store also include teachers and assistants carrying USB drives, SD cards, Raspberry Pi servers, and cell phones. This is why I've specified static HTML5 with JavaScript so that the content of the app store can be used from a variety of physical sources. I can foresee adding the whole app store to laptops.
# Modification to original requirements
* Download counts will be calculated from server logs and will not be part of app store itself.
# Original Requirements
## Sugar app store for Python 3 activities (aslov4)
**Selected**<br>
Nobody.
**Prerequisites**<br>
- Ability to write programs in Python,
- Ability to design and write web pages that use HTML5 and JavaScript,
**Description**<br>
Create the simplest possible app store for Sugar activities, where
each activity included has been (a) ported to Python 3 and released,
and (b) tested on Sugar Live Build.
We used to have an app store for Sugar activities, but because we
can't seem to attract any PHP developers the app store has failed to
keep up with development.
We now use activities.sugarlabs.org for Python 2 activities only.
We have tried to make a replacement for activities.sugarlabs.org three
times, and each time the features we need were not finished. These
projects have been too ambitious and have not been supported
collectively by the Sugar Labs community.
Minimum Requirements;
- support activity bundles uploaded via ssh,
- operate from static HTML5 with JavaScript,
- detect User-Agent of Fedora 18 systems running Sugar 0.112 or earlier, and redirect to activities.sugarlabs.org,
- provide a list of all activity bundles,
- provide activity bundle download, using the correct Content-Type,
- provide search of activity bundles (using title, description, or other keywords),
- support Sugar's microformat software upgrade feature in My Settings, (Sugar 0.116 is configured in `data/org.sugarlabs.gschema.xml` to use the AsloUpdater in `src/jarabe/model/update/aslo.py` which reaches out to a PHP script `update-aslo.php`, and will instead be configured to use `src/jarabe/model/update/microformat.py`),
Optional requirements;
- for a specific list of activities, access the source repository and detect any change to a release tag (publish), create a bundle and extract release notes,
- display in Browse if an activity bundle is already installed, (requires integration between Sugar on the local system and the web app),
- download counts,
- graphic design, style and appearance,
Non-requirements; things we don't want to have to do;
- any changes to activity metadata files `activity/activity.info`,
Project Scheduling;
- a working prototype with minimum requirements must be ready within the first two weeks,
- once approved, the Browse activity is to be changed to point to the service, and Sugar's software upgrade feature changed,
**Coding Mentors**<br>
[James Cameron](https://github.com/quozl),
[Hrishi Patel](https://github.com/hrishi1999) and,
[Rahul Bothra](https://github.com/pro-panda) (via mailing list)
**Assistant Mentors**<br>
[Samson Goddy](https://github.com/samswag)