diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..79b00cc --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,94 @@ +`work in progress` + +# Contributing + +When contributing to this repository, please first discuss the change you wish to make via issue, +email, or any other method with the owners of this repository before making a change. + +Please note we have a code of conduct, please follow it in all your interactions with the project. + +## Pull Request Process + +1. Ensure any install or build dependencies are removed before the end of the layer when doing a + build. +2. Update the README.md with details of changes to the interface, this includes new environment + variables, exposed ports, useful file locations and container parameters. +3. Increase the version numbers in any examples files and the README.md to the new version that this + Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/). +4. You may merge the Pull Request in once you have the sign-off of two other developers, or if you + do not have permission to do that, you may request the second reviewer to merge it for you. + +## Code of Conduct + +### Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +### Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic + address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a + professional setting + +### Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +### Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +### Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at [INSERT EMAIL ADDRESS]. All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +### Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ diff --git a/README.md b/README.md index 85e1cec..c1f8a67 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,9 @@ # osma server -Server for OSMA. Open Source software digital distribution service. +Server for OSMA. Open Source software digital distribution service. OSMA allows you to download, search, and add open source applications to favorites. +OSMA will have to be a convenient application for installing open source software. Reviews will show how good or bad the app is. -OSMA allows you to download, search, and add open source applications to favorites. +If you were looking for where to download the osma app - [OSMA](https://github.com/OSMA-D/osma-app) +Do you want to participate in this project? [Contributing](CONTRIBUTING.md) + +Check our [roadmap](docs/roadmap.md). diff --git a/docs/db-validation/apps.json b/docs/db-validation/apps.json new file mode 100644 index 0000000..e9b004a --- /dev/null +++ b/docs/db-validation/apps.json @@ -0,0 +1,55 @@ +{ + "$jsonSchema": { + "bsonType": "object", + "required": [ + "app_id", + "name", + "description", + "icon", + "screenshots", + "repo", + "author", + "tags" + ], + "properties": { + "app_id": { + "bsonType": "string", + "minLength": 3, + "maxLength": 5 + }, + "name": { + "bsonType": "string", + "minLength": 1, + "maxLength": 16 + }, + "description": { + "bsonType": "string" + }, + "icon": { + "bsonType": "string" + }, + "screenshots": { + "bsonType": "array", + "items": { + "type": "string" + } + }, + "repo": { + "bsonType": "string" + }, + "author": { + "bsonType": "string", + "minLength": 3, + "maxLength": 16 + }, + "tags": { + "bsonType": "array", + "items": { + "type": "string", + "minLength": 1, + "maxLength": 32 + } + } + } + } +} diff --git a/docs/db-validation/apps_versions.json b/docs/db-validation/apps_versions.json new file mode 100644 index 0000000..b2e9639 --- /dev/null +++ b/docs/db-validation/apps_versions.json @@ -0,0 +1,28 @@ +{ + "$jsonSchema": { + "bsonType": "object", + "required": ["app_id", "version", "url", "timestamp", "platform", "type"], + "properties": { + "name_id": { + "bsonType": "string", + "minLength": 3, + "maxLength": 5 + }, + "version": { + "bsonType": "string" + }, + "url": { + "bsonType": "string" + }, + "platform": { + "bsonType": "string" + }, + "type": { + "bsonType": "string" + }, + "timestamp": { + "bsonType": "number" + } + } + } +} diff --git a/docs/db-validation/personal_libraries.json b/docs/db-validation/personal_libraries.json new file mode 100644 index 0000000..0f1fade --- /dev/null +++ b/docs/db-validation/personal_libraries.json @@ -0,0 +1,22 @@ +{ + "$jsonSchema": { + "bsonType": "object", + "required": ["apps", "name"], + "properties": { + "name": { + "bsonType": "string", + "minLength": 3, + "maxLength": 16 + }, + "apps": { + "bsonType": "array", + "uniqueItems": true, + "items": { + "bsonType": "string", + "minLength": 3, + "maxLength": 5 + } + } + } + } +} diff --git a/docs/db-validation/reviews.json b/docs/db-validation/reviews.json new file mode 100644 index 0000000..f20627e --- /dev/null +++ b/docs/db-validation/reviews.json @@ -0,0 +1,32 @@ +{ + "$jsonSchema": { + "bsonType": "object", + "required": ["app_id", "user_name", "text", "score", "timestamp"], + "properties": { + "app_id": { + "bsonType": "string", + "minLength": 3, + "maxLength": 5 + }, + "user_name": { + "bsonType": "string", + "minLength": 3, + "maxLength": 16 + }, + "score": { + "bsonType": "number", + "minimum": 1, + "maximum": 10 + }, + "text": { + "bsonType": "string", + "minLength": 2, + "maxLength": 2000 + }, + "timestamp": { + "bsonType": "number", + "minimum": 1658995612 + } + } + } +} diff --git a/docs/db-validation/users.json b/docs/db-validation/users.json new file mode 100644 index 0000000..3a3ca06 --- /dev/null +++ b/docs/db-validation/users.json @@ -0,0 +1,22 @@ +{ + "$jsonSchema": { + "bsonType": "object", + "required": ["name", "password", "email", "role"], + "properties": { + "name": { + "bsonType": "string", + "minLength": 3, + "maxLength": 16 + }, + "password": { + "bsonType": "string" + }, + "email": { + "bsonType": "string" + }, + "role": { + "bsonType": "string" + } + } + } +} diff --git a/docs/guides/getting-started.md b/docs/guides/getting-started.md new file mode 100644 index 0000000..e69de29 diff --git a/docs/roadmap.md b/docs/roadmap.md new file mode 100644 index 0000000..da47866 --- /dev/null +++ b/docs/roadmap.md @@ -0,0 +1,83 @@ +# OSMA-Server Roadmap + +These are just server features, there is also an osma application, it will also have many features. + +## 1.0.0 (current) + +### Features + +#### Apps + +- [x] Get All apps +- [x] Get app by app_id +- [x] Get apps by tags +- [x] Get app versions by app_id +- [x] Get latest app version by app_id +- [x] Getting the app rating + +#### Reviews + +- [x] Writing reviews and editing +- [x] Get reviews by app id + +#### Personal libraries (downloads list) + +- [x] Get personal Library +- [x] Add app to personal library (downloads) + +#### Users + +- [x] Auth/Authorisation api +- [x] Update user info +- [x] Change user password + +--- + +## 1.1.\* + +### Features + +#### Users + +- [ ] Email confirmation +- [ ] Password Recovery + +#### Reviews + +- [ ] Review sorting (negative, positive) + +#### Apps + +- [ ] Getting the number of app downloads + +...And more `the list is not complete` + +--- + +## 1.2.\* + +### Features + +#### Users + +- [ ] Creating a developer account + +#### Apps + +- [ ] The ability to publish your application in osma + +...And more `the list is not complete` + +--- + +## After receiving the investment, it is possible + +- [ ] Investments received +- [ ] Own hosting for application files + +### Features + +- [ ] Uploading new versions to osma hosting +- [ ] IPFS Support for app downloading + +---