@@ -31,10 +31,6 @@
[](https://github.com/nisrulz/app-privacy-policy-generator/actions/workflows/firebase-hosting-merge.yml) [](https://github.com/nisrulz/app-privacy-policy-generator/actions/workflows/firebase-hosting-pull-request.yml)
-## Screenshots
-
-
-
## Project Support
- Before contacting me with issues, please visit the [Issue Tracker](https://github.com/nisrulz/app-privacy-policy-generator/issues) and see if issue was already added there. Just in case.
diff --git a/compress_images.sh b/compress_images.sh
new file mode 100755
index 0000000..d70e1b3
--- /dev/null
+++ b/compress_images.sh
@@ -0,0 +1,39 @@
+#!/usr/bin/env bash
+
+# App Privacy Policy Generator: A simple web app to generate a generic
+# privacy policy for your Android/iOS apps
+#
+# Copyright 2017-Present Nishant Srivastava
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see .
+
+echo "Navigate to Images directory"
+cd public/images
+
+#--------------------------------- Compress SVG files ---------------------------------#
+svgo -f app_graphics temp
+mv temp/*.svg app_graphics
+
+svgo -f app_icons temp
+mv temp/*.svg app_icons
+
+svgo -f social_icons temp
+mv temp/*.svg social_icons
+
+# Delete Temp directory
+rm -rf temp
+
+#--------------------------------- Compress PNG files ---------------------------------#
+npx png-minify minify third_party_logos/*.png
+
diff --git a/dev-doc.md b/dev-doc.md
index bc40a72..55558d4 100644
--- a/dev-doc.md
+++ b/dev-doc.md
@@ -9,11 +9,24 @@ The web app uses
- [sass](https://sass-lang.com/documentation/cli) - To convert sass templates to css and merge partials into single [`style.css`](public/css/style.css) file.
- [js-yaml](https://github.com/nodeca/js-yaml#cli-executable) - To convert yaml templates to json and generate the [`thirdpartyservices.js`](public/js/thirdpartyservices.js) file.
- [firebase-tools](https://github.com/firebase/firebase-tools) - To interact with Firebase as a service from command line.
- ---
- > Install the CLI tools using
- >
- > ```npm install -g @anduh/pug-cli sass js-yaml firebase-tools```
+ - [png-minify](https://www.npmjs.com/package/png-minify) - To compress png files.
+ - [svgo](https://www.npmjs.com/package/svgo) - To compress svg files.
+ - [uglifycss](https://www.npmjs.com/package/uglifycss) - To compress css files.
+ - [uglify-js](https://www.npmjs.com/package/uglify-js) - To compress js files.
+ - [html-minifier](https://www.npmjs.com/package/html-minifier) - To compress html files.
+ - [purgecss](https://purgecss.com/CLI.html) - To compress css files.
+
+---
+Install the CLI tools using
+
+```sh
+npm install -g @anduh/pug-cli sass js-yaml \
+firebase-tools \
+svgo png-minify \
+uglifycss uglify-js html-minifier \
+purgecss
+```
If you wish to modify the code for the webapp, then look into [`src`](src) directory.
@@ -34,10 +47,18 @@ To compile the code under `src` folder, simply execute the helper bash script [`
./render.sh
```
-This will generate the `index.html`, `style.css` and `thirdpartyservices.js` files at their required directory path.
+This will generate the `index.html`, `style.min.css`, `main.min.js`, `utils.min.js` and `thirdpartyservices.min.js` files at their required directory path.
Open `index.html` to view the full web app 🎉
+## Compress Images
+
+Run
+
+```sh
+./compress_images.sh
+```
+
## Contributing more 3rd Party Service's links
The web app uses a JSON array to populate the list of 3rd party services section. This JSON array is generated from another yaml file.
diff --git a/img/banner.jpg b/img/banner.jpg
new file mode 100644
index 0000000..9fac706
Binary files /dev/null and b/img/banner.jpg differ
diff --git a/img/banner.png b/img/banner.png
deleted file mode 100644
index b60074a..0000000
Binary files a/img/banner.png and /dev/null differ
diff --git a/img/logo.svg b/img/logo.svg
new file mode 100644
index 0000000..9a635e2
--- /dev/null
+++ b/img/logo.svg
@@ -0,0 +1,3 @@
+
+
+
\ No newline at end of file
diff --git a/img/sc_1.png b/img/sc_1.png
deleted file mode 100644
index 549c377..0000000
Binary files a/img/sc_1.png and /dev/null differ
diff --git a/img/sc_2.png b/img/sc_2.png
deleted file mode 100644
index fa79d3a..0000000
Binary files a/img/sc_2.png and /dev/null differ
diff --git a/img/sc_3.png b/img/sc_3.png
deleted file mode 100644
index 77d0806..0000000
Binary files a/img/sc_3.png and /dev/null differ
diff --git a/public/404.html b/public/404.html
index c3e5d0c..42336e1 100755
--- a/public/404.html
+++ b/public/404.html
@@ -1,57 +1,27 @@
-
-
-
-
-
-
-
-
-
-
- App Privacy Policy Generator
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {{ devOrCompanyName }} built the {{ appName }} app as
- {{typeOfAppTxt}} app. This SERVICE is provided by
- {{ devOrCompanyName }} {{ atNoCost }} and is intended for use as
- is.
-
-
- This page is used to inform visitors regarding {{myOrOur}}
- policies with the collection, use, and disclosure of Personal
- Information if anyone decided to use {{myOrOur}} Service.
-
-
- If you choose to use {{ myOrOur }} Service, then you agree to
- the collection and use of information in relation to this
- policy. The Personal Information that {{iOrWe}} collect is
- used for providing and improving the Service. {{iOrWe |
- capitalize }} will not use or share your information with
- anyone except as described in this Privacy Policy.
-
-
- The terms used in this Privacy Policy have the same meanings
- as in our Terms and Conditions, which are accessible at
- {{ appName }} unless otherwise defined in this Privacy Policy.
-
-
Information Collection and Use
-
- For a better experience, while using our Service, {{ iOrWe }}
- may require you to provide us with certain personally
- identifiable information{{pidInfo}} The information that
- {{iOrWe}} request will be {{retainedInfo}}.
-
-
-
- The app does use third-party services that may collect
- information used to identify you.
-
-
- Link to the privacy policy of third-party service providers used
- by the app
-
- {{iOrWe | capitalize }} want to inform you that whenever you
- use {{myOrOur}} Service, in a case of an error in the app
- {{iOrWe}} collect data and information (through third-party
- products) on your phone called Log Data. This Log Data may
- include information such as your device Internet Protocol
- (“IP”) address, device name, operating system version, the
- configuration of the app when utilizing {{ myOrOur }} Service,
- the time and date of your use of the Service, and other
- statistics.
-
-
Cookies
-
- Cookies are files with a small amount of data that are
- commonly used as anonymous unique identifiers. These are sent
- to your browser from the websites that you visit and are
- stored on your device's internal memory.
-
-
- This Service does not use these “cookies” explicitly. However,
- the app may use third-party code and libraries that use
- “cookies” to collect information and improve their services.
- You have the option to either accept or refuse these cookies
- and know when a cookie is being sent to your device. If you
- choose to refuse our cookies, you may not be able to use some
- portions of this Service.
-
-
Service Providers
-
- {{iOrWe | capitalize }} may employ third-party companies and
- individuals due to the following reasons:
-
-
-
To facilitate our Service;
-
To provide the Service on our behalf;
-
To perform Service-related services; or
-
To assist us in analyzing how our Service is used.
-
-
- {{iOrWe | capitalize }} want to inform users of this Service
- that these third parties have access to their Personal
- Information. The reason is to perform the tasks assigned to
- them on our behalf. However, they are obligated not to
- disclose or use the information for any other purpose.
-
-
Security
-
- {{iOrWe | capitalize }} value your trust in providing us your
- Personal Information, thus we are striving to use commercially
- acceptable means of protecting it. But remember that no method
- of transmission over the internet, or method of electronic
- storage is 100% secure and reliable, and {{ iOrWe }} cannot
- guarantee its absolute security.
-
-
Links to Other Sites
-
- This Service may contain links to other sites. If you click on
- a third-party link, you will be directed to that site. Note
- that these external sites are not operated by {{ meOrUs }}.
- Therefore, {{ iOrWe }} strongly advise you to review the
- Privacy Policy of these websites. {{iOrWe | capitalize }} have
- no control over and assume no responsibility for the content,
- privacy policies, or practices of any third-party sites or
- services.
-
-
Children’s Privacy
-
-
- These Services do not address anyone under the age of 13.
- {{iOrWe | capitalize }} do not knowingly collect personally
- identifiable information from children under 13 years of age. In the case
- {{ iOrWe }} discover that a child under 13 has provided
- {{ meOrUs }} with personal information, {{ iOrWe }} immediately
- delete this from our servers. If you are a parent or guardian
- and you are aware that your child has provided us with
- personal information, please contact {{ meOrUs }} so that
- {{ iOrWe }} will be able to do the necessary actions.
-
-
-
-
- {{iOrWe | capitalize }} do not knowingly collect personally
- identifiable information from children. {{iOrWe | capitalize }}
- encourage all children to never submit any personally
- identifiable information through
- the Application and/or Services.
- {{iOrWe | capitalize }} encourage parents and legal guardians to monitor
- their children's Internet usage and to help enforce this Policy by instructing
- their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child
- has provided personally identifiable information to us through the Application and/or Services,
- please contact us. You must also be at least 16 years of age to consent to the processing
- of your personally identifiable information in your country (in some countries we may allow your parent
- or guardian to do so on your behalf).
-
-
-
Changes to This Privacy Policy
-
- {{iOrWe | capitalize }} may update our Privacy Policy from
- time to time. Thus, you are advised to review this page
- periodically for any changes. {{iOrWe | capitalize }} will
- notify you of any changes by posting the new Privacy Policy on
- this page.
-
-
This policy is effective as of {{ effectiveFromDate }}
-
Contact Us
-
- If you have any questions or suggestions about {{ myOrOur }}
- Privacy Policy, do not hesitate to contact {{meOrUs}} at {{
- appContact }}.
-
- By downloading or using the app, these terms will
- automatically apply to you – you should make sure therefore
- that you read them carefully before using the app. You’re not
- allowed to copy or modify the app, any part of the app, or
- our trademarks in any way. You’re not allowed to attempt to
- extract the source code of the app, and you also shouldn’t try
- to translate the app into other languages or make derivative
- versions. The app itself, and all the trademarks, copyright,
- database rights, and other intellectual property rights related
- to it, still belong to {{devOrCompanyName}}.
-
-
- {{devOrCompanyName}} is committed to ensuring that the app is
- as useful and efficient as possible. For that reason, we
- reserve the right to make changes to the app or to charge for
- its services, at any time and for any reason. We will never
- charge you for the app or its services without making it very
- clear to you exactly what you’re paying for.
-
-
- The {{appName}} app stores and processes personal data that
- you have provided to us, to provide {{myOrOur}}
- Service. It’s your responsibility to keep your phone and
- access to the app secure. We therefore recommend that you do
- not jailbreak or root your phone, which is the process of
- removing software restrictions and limitations imposed by the
- official operating system of your device. It could make your
- phone vulnerable to malware/viruses/malicious programs,
- compromise your phone’s security features and it could mean
- that the {{appName}} app won’t work properly or at all.
-
-
-
- The app does use third-party services that declare their
- Terms and Conditions.
-
-
- Link to Terms and Conditions of third-party service
- providers used by the app
-
- You should be aware that there are certain things that
- {{devOrCompanyName}} will not take responsibility for. Certain
- functions of the app will require the app to have an active
- internet connection. The connection can be Wi-Fi or provided
- by your mobile network provider, but {{devOrCompanyName}}
- cannot take responsibility for the app not working at full
- functionality if you don’t have access to Wi-Fi, and you don’t
- have any of your data allowance left.
-
-
-
- If you’re using the app outside of an area with Wi-Fi, you
- should remember that the terms of the agreement with your
- mobile network provider will still apply. As a result, you may
- be charged by your mobile provider for the cost of data for
- the duration of the connection while accessing the app, or
- other third-party charges. In using the app, you’re accepting
- responsibility for any such charges, including roaming data
- charges if you use the app outside of your home territory
- (i.e. region or country) without turning off data roaming. If
- you are not the bill payer for the device on which you’re
- using the app, please be aware that we assume that you have
- received permission from the bill payer for using the app.
-
-
- Along the same lines, {{devOrCompanyName}} cannot always take
- responsibility for the way you use the app i.e. You need to
- make sure that your device stays charged – if it runs out of
- battery and you can’t turn it on to avail the Service,
- {{devOrCompanyName}} cannot accept responsibility.
-
-
- With respect to {{devOrCompanyName}}’s responsibility for your
- use of the app, when you’re using the app, it’s important to
- bear in mind that although we endeavor to ensure that it is
- updated and correct at all times, we do rely on third parties
- to provide information to us so that we can make it available
- to you. {{devOrCompanyName}} accepts no liability for any
- loss, direct or indirect, you experience as a result of
- relying wholly on this functionality of the app.
-
-
- At some point, we may wish to update the app. The app is
- currently available on {{osType}} – the requirements for the
- {{requirementOfSystem}}(and for any additional systems we
- decide to extend the availability of the app to) may change,
- and you’ll need to download the updates if you want to keep
- using the app. {{devOrCompanyName}} does not promise that it
- will always update the app so that it is relevant to you
- and/or works with the {{osType}} version that you have
- installed on your device. However, you promise to always
- accept updates to the application when offered to you, We may
- also wish to stop providing the app, and may terminate use of
- it at any time without giving notice of termination to you.
- Unless we tell you otherwise, upon any termination, (a) the
- rights and licenses granted to you in these terms will end;
- (b) you must stop using the app, and (if needed) delete it
- from your device.
-
-
Changes to This Terms and Conditions
-
- {{iOrWe | capitalize }} may update our Terms and Conditions
- from time to time. Thus, you are advised to review this page
- periodically for any changes. {{iOrWe | capitalize }} will
- notify you of any changes by posting the new Terms and
- Conditions on this page.
-
-
- These terms and conditions are effective as of {{
- effectiveFromDate }}
-
-
Contact Us
-
- If you have any questions or suggestions about {{ myOrOur }}
- Terms and Conditions, do not hesitate to contact {{ meOrUs }}
- at {{ appContact }}.
-
- This template for privacy policy and terms & conditions is
- provided on "AS IS" basis, without warranties or conditions of
- any kind, either expressed or implied. It is intended for you as
- an inspirational document and you may use it when compiling your
- own privacy policy. The developer of App Privacy Policy
- Generator does not take any responsibility for the legal
- consequences associated with the use of this privacy policy or
- terms & conditions, and urges you to seek independent legal
- advice ensuring compliance with all rules applicable for the
- users of your application. The developer of App Privacy Policy
- Generator can in no way be found liable for any direct or
- indirect damage/loss suffered by individual/company due to the
- use of this document.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+App Privacy Policy Generator
While App Privacy Policy Generator is completely FREE, it takes money to keep it running and updated. If you are able to, then consider contributing by:
This privacy policy applies to the {{ appName }} app (hereby referred to as "Application") for mobile devices that was created by {{ devOrCompanyName }} (hereby referred to as "Service Provider") as {{typeOfAppTxt}} service. This service is intended for use "AS IS".
Information Collection and Use
The Application collects information when you download and use it. This information may include information such as
Your device's Internet Protocol address (e.g. IP address)
The pages of the Application that you visit, the time and date of your visit, the time spent on those pages
The time spent on the Application
The operating system you use on your mobile device
...and more.
The Service Provider may use the information you provided to contact you from time to time to provide you with important information, required notices and marketing promotions.
For a better experience, while using the Application, the Service Provider may require you to provide us with certain personally identifiable information{{pidInfo}} The information that the Service Provider request will be retained by them and used as described in this privacy policy.
Third Party Access
Only aggregated, anonymized data is periodically transmitted to external services to aid the Service Provider in improving the Application and their service. The Service Provider may share your information with third parties in the ways that are described in this privacy statement.
Please note that the Application utilizes third-party services that have their own Privacy Policy about handling data. Below are the links to the Privacy Policy of the third-party service providers used by the Application:
The Service Provider may disclose User Provided and Automatically Collected Information:
as required by law, such as to comply with a subpoena, or similar legal process;
when they believe in good faith that disclosure is necessary to protect their rights, protect your safety or the safety of others, investigate fraud, or respond to a government request;
with their trusted services providers who work on their behalf, do not have an independent use of the information we disclose to them, and have agreed to adhere to the rules set forth in this privacy statement.
Opt-Out Rights
You can stop all collection of information by the Application easily by uninstalling it. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.
Data Retention Policy
The Service Provider will retain User Provided data for as long as you use the Application and for a reasonable time thereafter. If you'd like them to delete User Provided Data that you have provided via the Application, please contact them at {{ appContact }} and they will respond in a reasonable time.
Children
The Service Provider does not use the Application to knowingly solicit data from or market to children under the age of 13.
The Application does not address anyone under the age of 13. The Service Provider does not knowingly collect personally identifiable information from children under 13 years of age. In the case the Service Provider discover that a child under 13 has provided personal information, the Service Provider will immediately delete this from their servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions.
The Service Provider does not knowingly collect personally identifiable information from children. The Service Provider encourages all children to never submit any personally identifiable information through the Application and/or Services. The Service Provider encourage parents and legal guardians to monitor their children's Internet usage and to help enforce this Policy by instructing their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child has provided personally identifiable information to the Service Provider through the Application and/or Services, please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions. You must also be at least 16 years of age to consent to the processing of your personally identifiable information in your country (in some countries we may allow your parent or guardian to do so on your behalf).
Security
The Service Provider is concerned about safeguarding the confidentiality of your information. The Service Provider provides physical, electronic, and procedural safeguards to protect information the Service Provider processes and maintains.
Changes
This Privacy Policy may be updated from time to time for any reason. The Service Provider will notify you of any changes to the Privacy Policy by updating this page with the new Privacy Policy. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
This privacy policy is effective as of {{ effectiveFromDate }}
Your Consent
By using the Application, you are consenting to the processing of your information as set forth in this Privacy Policy now and as amended by us.
Contact Us
If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at {{ appContact }}.
This privacy policy applies to the {{ appName }} app (hereby referred to as "Application") for mobile devices that was created by {{ devOrCompanyName }} (hereby referred to as "Service Provider") as {{typeOfAppTxt}} service. This service is intended for use "AS IS".
What information does the Application obtain and how is it used?
The Application does not obtain any information when you download and use it. Registration is not required to use the Application.
Does the Application collect precise real time location information of the device?
This Application does not collect precise information about the location of your mobile device.
Do third parties see and/or have access to information obtained by the Application?
Since the Application does not collect any information, no data is shared with third parties.
What are my opt-out rights?
You can stop all collection of information by the Application easily by uninstalling it. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.
Children
The Application is not used to knowingly solicit data from or market to children under the age of 13.
The Service Provider does not knowingly collect personally identifiable information from children. The Service Provider encourages all children to never submit any personally identifiable information through the Application and/or Services. The Service Provider encourage parents and legal guardians to monitor their children's Internet usage and to help enforce this Policy by instructing their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child has provided personally identifiable information to the Service Provider through the Application and/or Services, please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions. You must also be at least 16 years of age to consent to the processing of your personally identifiable information in your country (in some countries we may allow your parent or guardian to do so on your behalf).
Security
The Service Provider is concerned about safeguarding the confidentiality of your information. However, since the Application does not collect any information, there is no risk of your data being accessed by unauthorized individuals.
Changes
This Privacy Policy may be updated from time to time for any reason. The Service Provider will notify you of any changes to their Privacy Policy by updating this page with the new Privacy Policy. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
This privacy policy is effective as of {{ effectiveFromDate }}
Your Consent
By using the Application, you are consenting to the processing of your information as set forth in this Privacy Policy now and as amended by the Service Provider.
Contact Us
If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at {{ appContact }}.
This privacy policy is applicable to the {{ appName }} app (hereinafter referred to as "Application") for mobile devices, which was developed by {{ devOrCompanyName }} (hereinafter referred to as "Service Provider") as a {{typeOfAppTxt}} service. This service is provided "AS IS".
What information does the Application obtain and how is it used? User Provided Information
The Application acquires the information you supply when you download and register the Application. Registration with the Service Provider is not mandatory. However, bear in mind that you might not be able to utilize some of the features offered by the Application unless you register with them.
The Service Provider may also use the information you provided them to contact you from time to time to provide you with important information, required notices and marketing promotions.
Automatically Collected Information
In addition, the Application may collect certain information automatically, including, but not limited to, the type of mobile device you use, your mobile devices unique device ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browsers you use, and information about the way you use the Application.
Does the Application collect precise real time location information of the device?
This Application does not gather precise information about the location of your mobile device.
Do third parties see and/or have access to information obtained by the Application?
Only aggregated, anonymized data is periodically transmitted to external services to aid the Service Provider in improving the Application and their service. The Service Provider may share your information with third parties in the ways that are described in this privacy statement.
Please note that the Application utilizes third-party services that have their own Privacy Policy about handling data. Below are the links to the Privacy Policy of the third-party service providers used by the Application:
The Service Provider may disclose User Provided and Automatically Collected Information:
as required by law, such as to comply with a subpoena, or similar legal process;
when they believe in good faith that disclosure is necessary to protect their rights, protect your safety or the safety of others, investigate fraud, or respond to a government request;
with their trusted services providers who work on their behalf, do not have an independent use of the information we disclose to them, and have agreed to adhere to the rules set forth in this privacy statement.
What are my opt-out rights?
You can halt all collection of information by the Application easily by uninstalling the Application. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.
Data Retention Policy, Managing Your Information
The Service Provider will retain User Provided data for as long as you use the Application and for a reasonable time thereafter. The Service Provider will retain Automatically Collected information for up to 24 months and thereafter may store it in aggregate. If you'd like the Service Provider to delete User Provided Data that you have provided via the Application, please contact them at {{ appContact }} and we will respond in a reasonable time. Please note that some or all of the User Provided Data may be required in order for the Application to function properly.
Children
The Service Provider does not use the Application to knowingly solicit data from or market to children under the age of 13.
The Application does not address anyone under the age of 13. The Service Provider does not knowingly collect personally identifiable information from children under 13 years of age. In the case the Service Provider discover that a child under 13 has provided personal information, the Service Provider will immediately delete this from their servers. If you are a parent or guardian and you are aware that your child has provided us with personal information, please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions.
The Service Provider does not knowingly collect personally identifiable information from children. The Service Provider encourages all children to never submit any personally identifiable information through the Application and/or Services. The Service Provider encourage parents and legal guardians to monitor their children's Internet usage and to help enforce this Policy by instructing their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child has provided personally identifiable information to the Service Provider through the Application and/or Services, please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions. You must also be at least 16 years of age to consent to the processing of your personally identifiable information in your country (in some countries we may allow your parent or guardian to do so on your behalf).
Security
The Service Provider are concerned about safeguarding the confidentiality of your information. The Service Provider provide physical, electronic, and procedural safeguards to protect information we process and maintain. For example, we limit access to this information to authorized employees and contractors who need to know that information in order to operate, develop or improve their Application. Please be aware that, although we endeavor provide reasonable security for information we process and maintain, no security system can prevent all potential security breaches.
Changes
This Privacy Policy may be updated from time to time for any reason. The Service Provider will notify you of any changes to the Privacy Policy by updating this page with the new Privacy Policy. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
This privacy policy is effective as of {{ effectiveFromDate }}
Your Consent
By using the Application, you are giving your consent to the Service Provider processing of your information as set forth in this Privacy Policy now and as amended by us. "Processing,” means using cookies on a computer/hand held device or using or touching information in any way, including, but not limited to, collecting, storing, deleting, using, combining and disclosing information.
Contact us
If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at {{ appContact }}.
These terms and conditions applies to the {{ appName }} app (hereby referred to as "Application") for mobile devices that was created by {{ devOrCompanyName }} (hereby referred to as "Service Provider") as {{typeOfAppTxt}} service.
Upon downloading or utilizing the Application, you are automatically agreeing to the following terms. It is strongly advised that you thoroughly read and understand these terms prior to using the Application. Unauthorized copying, modification of the Application, any part of the Application, or our trademarks is strictly prohibited. Any attempts to extract the source code of the Application, translate the Application into other languages, or create derivative versions are not permitted. All trademarks, copyrights, database rights, and other intellectual property rights related to the Application remain the property of the Service Provider.
The Service Provider is dedicated to ensuring that the Application is as beneficial and efficient as possible. As such, they reserve the right to modify the Application or charge for their services at any time and for any reason. The Service Provider assures you that any charges for the Application or its services will be clearly communicated to you.
The Application stores and processes personal data that you have provided to the Service Provider in order to provide the Service. It is your responsibility to maintain the security of your phone and access to the Application. The Service Provider strongly advise against jailbreaking or rooting your phone, which involves removing software restrictions and limitations imposed by the official operating system of your device. Such actions could expose your phone to malware, viruses, malicious programs, compromise your phone's security features, and may result in the Application not functioning correctly or at all.
Please note that the Application utilizes third-party services that have their own Terms and Conditions. Below are the links to the Terms and Conditions of the third-party service providers used by the Application:
Please be aware that the Service Provider does not assume responsibility for certain aspects. Some functions of the Application require an active internet connection, which can be Wi-Fi or provided by your mobile network provider. The Service Provider cannot be held responsible if the Application does not function at full capacity due to lack of access to Wi-Fi or if you have exhausted your data allowance.
If you are using the application outside of a Wi-Fi area, please be aware that your mobile network provider's agreement terms still apply. Consequently, you may incur charges from your mobile provider for data usage during the connection to the application, or other third-party charges. By using the application, you accept responsibility for any such charges, including roaming data charges if you use the application outside of your home territory (i.e., region or country) without disabling data roaming. If you are not the bill payer for the device on which you are using the application, they assume that you have obtained permission from the bill payer.
Similarly, the Service Provider cannot always assume responsibility for your usage of the application. For instance, it is your responsibility to ensure that your device remains charged. If your device runs out of battery and you are unable to access the Service, the Service Provider cannot be held responsible.
In terms of the Service Provider's responsibility for your use of the application, it is important to note that while they strive to ensure that it is updated and accurate at all times, they do rely on third parties to provide information to them so that they can make it available to you. The Service Provider accepts no liability for any loss, direct or indirect, that you experience as a result of relying entirely on this functionality of the application.
The Service Provider may wish to update the application at some point. The application is currently available as per the requirements for the operating system (and for any additional systems they decide to extend the availability of the application to) may change, and you will need to download the updates if you want to continue using the application. The Service Provider does not guarantee that it will always update the application so that it is relevant to you and/or compatible with the particular operating system version installed on your device. However, you agree to always accept updates to the application when offered to you. The Service Provider may also wish to cease providing the application and may terminate its use at any time without providing termination notice to you. Unless they inform you otherwise, upon any termination, (a) the rights and licenses granted to you in these terms will end; (b) you must cease using the application, and (if necessary) delete it from your device.
Changes to These Terms and Conditions
The Service Provider may periodically update their Terms and Conditions. Therefore, you are advised to review this page regularly for any changes. The Service Provider will notify you of any changes by posting the new Terms and Conditions on this page.
These terms and conditions are effective as of {{ effectiveFromDate }}
Contact Us
If you have any questions or suggestions about the Terms and Conditions, please do not hesitate to contact the Service Provider at {{ appContact }}.
This template for Privacy Policy and Terms & Conditions is furnished on an "AS IS" basis, devoid of any express or implied warranties or conditions.
It serves as a reference document for you while drafting your own privacy policy.
The developer of the App Privacy Policy Generator disclaims any liability for the legal implications arising from the utilization of this privacy policy or terms & conditions.
It is strongly recommended to obtain independent legal counsel to ensure compliance with all regulations applicable to the users of your application.
The developer of the App Privacy Policy Generator cannot be held accountable for any direct or indirect damage/loss incurred by an individual/company as a result of using this document.
\ No newline at end of file
diff --git a/public/js/flycricket.js b/public/js/flycricket.js
deleted file mode 100644
index d4502ad..0000000
--- a/public/js/flycricket.js
+++ /dev/null
@@ -1,9 +0,0 @@
-function fc_deploy() {
- var form = document.getElementById("fc-form");
-
- // fill in the body with the html content
- document.getElementById('fc-body').value = getContent('privacy_content')
- document.getElementById('fc-terms').value = getContent('tandc_content')
-
- form.submit();
-}
\ No newline at end of file
diff --git a/public/js/flycricket.min.js b/public/js/flycricket.min.js
new file mode 100644
index 0000000..3f56a72
--- /dev/null
+++ b/public/js/flycricket.min.js
@@ -0,0 +1 @@
+function fc_deploy_simple(){var form=document.getElementById("fc-form");document.getElementById("fc-body").value=getContent("privacy_simple_content");document.getElementById("fc-terms").value=getContent("tandc_content");form.submit()}function fc_deploy_notracking(){var form=document.getElementById("fc-form");document.getElementById("fc-body").value=getContent("privacy_notrack_content");document.getElementById("fc-terms").value=getContent("tandc_content");form.submit()}function fc_deploy_gdpr(){var form=document.getElementById("fc-form");document.getElementById("fc-body").value=getContent("privacy_gdpr_content");document.getElementById("fc-terms").value=getContent("tandc_content");form.submit()}
\ No newline at end of file
diff --git a/public/js/main.js b/public/js/main.js
deleted file mode 100755
index 88d833f..0000000
--- a/public/js/main.js
+++ /dev/null
@@ -1,203 +0,0 @@
-/*
- App Privacy Policy Generator: A simple web app to generate a generic
- privacy policy for your Android/iOS apps
-
- Copyright 2017-Present Nishant Srivastava
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation, either version 3 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program. If not, see .
- */
-
-var app = new Vue({
- el: "#app",
- data: {
- iOrWe: "[I/We]",
- typeOfApp: "",
- typeOfAppTxt: "[open source/free/freemium/ad-supported/commercial]",
- typeOfDev: "",
- appName: "",
- appContact: "",
- myOrOur: "[my/our]",
- meOrUs: "[me/us]",
- atNoCost: "[at no cost]",
- retainedInfo:
- "[retained on your device and is not collected by [me/us] in any way]/[retained by us and used as described in this privacy policy]",
- devName: "",
- companyName: "",
- devOrCompanyName: "[Developer/Company name]",
- pidInfoIn: "",
- pidInfo:
- "[add whatever else you collect here, e.g. users name, address, location, pictures]",
- osType: "",
- effectiveFromDate: new Date().toISOString().slice(0, 10),
- requirementOfSystem: "system",
- thirdPartyServices: thirdPartyServicesJsonArray,
- showPrivacyModal: false,
- showGDPRPrivacyModal: false,
- showTermsModal: false,
- showDisclaimerModal: false,
- hasThirdPartyServicesSelected: true,
- contentRenderType: 1,
- wizardStep: 1,
- totalWizardSteps: 3,
- },
- filters: {
- capitalize: function (value) {
- if (!value) return ''
- value = value.toString()
- return value.charAt(0).toUpperCase() + value.slice(1)
- }
- },
- methods: {
- preview: function (id) {
- this.contentRenderType = 1
- },
- nextStep: function () {
- if (this.wizardStep <= this.totalWizardSteps) {
- if (this.wizardStep == 1) {
- if (this.appName.length == 0 || this.appName == "" || this.appName == null || this.appName == "Please provide an App Name!") {
- this.appName = "Please provide an App Name!"
- return
- }
-
- if (this.appContact.length == 0 || this.appContact == "" || this.appContact == null || this.appContact == "Please provide contact info!") {
- this.appContact = "Please provide contact info!"
- return
- }
- }
-
- this.wizardStep += 1
- }
- },
- prevStep: function () {
- if (this.wizardStep >= 1) {
- this.wizardStep -= 1
- }
- },
- checkForThirdPartyServicesEnabled: function () {
- let listOfEnabledThirdPartyServices = []
- this.thirdPartyServices.forEach((item) => {
- if (item[item.model] == true) {
- listOfEnabledThirdPartyServices.push(true)
- }
- })
-
- return listOfEnabledThirdPartyServices.length > 0
- },
- toggleState: function (item) {
- let state = item.model
-
- // console.log('Item:', item.name, item.model, item[state])
- // For reactive update of the json
- // Toggle the state
- Vue.set(thirdPartyServicesJsonArray, item.model, !item[state])
- },
- getHtml: function (id, target) {
- let content = getContent(id)
- let title = getTitle(id)
- let rawHTML = getRawHTML(content, title)
- this.contentRenderType = 2
- loadInTextView(target, rawHTML)
- },
- getMarkdown: function (id, target) {
- let content = getContent(id)
- let title = getTitle(id)
- let rawHTML = getRawHTML(content, title)
- let markdown = convertHtmlToMd(rawHTML)
- this.contentRenderType = 2
- loadInTextView(target, markdown)
- },
- generate: function () {
- if (this.typeOfDev === "Individual") {
- this.devOrCompanyName = this.devName
- this.iOrWe = "I"
- this.myOrOur = "my"
- this.meOrUs = "me"
- this.retainedInfo =
- "retained on your device and is not collected by " +
- this.meOrUs +
- " in any way"
- } else if (this.typeOfDev === "Company") {
- this.devOrCompanyName = this.companyName
- this.iOrWe = "we"
- this.myOrOur = "our"
- this.meOrUs = "us"
- this.retainedInfo =
- "retained by us and used as described in this privacy policy"
- }
-
- if (this.typeOfApp === "Commercial") {
- this.atNoCost = ""
- } else {
- this.atNoCost = "at no cost"
- }
-
- if (this.pidInfoIn === "") {
- this.pidInfo = "."
- } else {
- this.pidInfo = ", including but not limited to " + this.pidInfoIn + "."
- }
-
- switch (this.typeOfApp) {
- case "Free":
- case "Freemium":
- case "Commercial":
- this.typeOfAppTxt = "a " + this.typeOfApp
- break
- case "Open Source":
- case "Ad Supported":
- this.typeOfAppTxt = "an " + this.typeOfApp
- break
- }
-
- switch (this.osType) {
- case "Android": {
- this.osType = "Android"
- this.requirementOfSystem = "system"
- break
- }
- case "iOS": {
- this.osType = "iOS"
- this.requirementOfSystem = "system"
- break
- }
- case "Android & iOS": {
- this.osType = "Android & iOS"
- this.requirementOfSystem = "both systems"
- break
- }
- }
- },
- togglePrivacyModalVisibility: function () {
- this.generate()
- this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled()
- this.contentRenderType = 1
- this.showPrivacyModal = !this.showPrivacyModal
- },
- toggleGDPRPrivacyModalVisibility: function () {
- this.generate()
- this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled()
- this.contentRenderType = 1
- this.showGDPRPrivacyModal = !this.showGDPRPrivacyModal
- },
- toggleTermsModalVisibility: function () {
- this.generate()
- this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled()
- this.contentRenderType = 1
- this.showTermsModal = !this.showTermsModal
- },
- toggleDisclaimerModalVisibility: function () {
- this.showDisclaimerModal = !this.showDisclaimerModal
- },
- },
-})
diff --git a/public/js/main.min.js b/public/js/main.min.js
new file mode 100644
index 0000000..05a3b8d
--- /dev/null
+++ b/public/js/main.min.js
@@ -0,0 +1 @@
+var app=new Vue({el:"#app",data:{iOrWe:"[I/We]",typeOfApp:"Free",typeOfAppTxt:"[open source/free/freemium/ad-supported/commercial]",typeOfDev:"Individual",appName:"",appContact:"",devName:"",companyName:"",devOrCompanyName:"[Developer/Company name]",pidInfoIn:"",pidInfo:"[add whatever else you collect here, e.g. users name, address, location, pictures]",osType:"Android",effectiveFromDate:(new Date).toISOString().slice(0,10),requirementOfSystem:"system",thirdPartyServices:thirdPartyServicesJsonArray,showPrivacyModal:false,showGDPRPrivacyModal:false,showTermsModal:false,showDisclaimerModal:false,showNoTrackingPrivacyPolicyModal:false,hasThirdPartyServicesSelected:true,contentRenderType:1,wizardStep:1,totalWizardSteps:7,typeOfPolicy:"Simple",typeOfPolicyInt:1},filters:{capitalize:function(value){if(!value)return"";value=value.toString();return value.charAt(0).toUpperCase()+value.slice(1)}},methods:{showPrivacyModal:function(){this.showPrivacyModal=true},showNoTrackingPrivacyPolicyModal:function(){this.showNoTrackingPrivacyPolicyModal=true},showGDPRPrivacyModal:function(){this.showGDPRPrivacyModal=true},preview:function(id){this.contentRenderType=1},setTypeOfPolicyInt:function(){switch(this.typeOfPolicy){case"Simple":this.typeOfPolicyInt=1;break;case"No Tracking":this.typeOfPolicyInt=2;break;case"GDPR":this.typeOfPolicyInt=3;break}},nextStep:function(){this.wizardStep+=1},prevStep:function(){this.wizardStep-=1},checkForThirdPartyServicesEnabled:function(){let listOfEnabledThirdPartyServices=[];this.thirdPartyServices.forEach(item=>{if(item[item.model]==true){listOfEnabledThirdPartyServices.push(true)}});return listOfEnabledThirdPartyServices.length>0},toggleState:function(item){let state=item.model;Vue.set(thirdPartyServicesJsonArray,item.model,!item[state])},getHtml:function(id,target){let content=getContent(id);let title=getTitle(id);let rawHTML=getRawHTML(content,title);this.contentRenderType=2;loadInTextView(target,rawHTML)},getMarkdown:function(id,target){let content=getContent(id);let title=getTitle(id);let rawHTML=getRawHTML(content,title);let markdown=convertHtmlToMd(rawHTML);this.contentRenderType=2;loadInTextView(target,markdown)},generate:function(){if(this.typeOfDev==="Individual"){this.devOrCompanyName=this.devName}else if(this.typeOfDev==="Company"){this.devOrCompanyName=this.companyName}if(this.pidInfoIn===""){this.pidInfo="."}else{this.pidInfo=", including but not limited to "+this.pidInfoIn+"."}switch(this.typeOfApp){case"Free":case"Freemium":case"Commercial":this.typeOfAppTxt="a "+this.typeOfApp;break;case"Open Source":case"Ad Supported":this.typeOfAppTxt="an "+this.typeOfApp;break}switch(this.osType){case"Android":{this.osType="Android";this.requirementOfSystem="system";break}case"iOS":{this.osType="iOS";this.requirementOfSystem="system";break}case"Android & iOS":{this.osType="Android & iOS";this.requirementOfSystem="both systems";break}}},toggleNoTrackingPrivacyPolicyModalVisibility:function(){this.generate();this.contentRenderType==1;this.showNoTrackingPrivacyPolicyModal=!this.showNoTrackingPrivacyPolicyModal},togglePrivacyModalVisibility:function(){this.generate();this.hasThirdPartyServicesSelected=this.checkForThirdPartyServicesEnabled();this.contentRenderType=1;this.showPrivacyModal=!this.showPrivacyModal},toggleGDPRPrivacyModalVisibility:function(){this.generate();this.hasThirdPartyServicesSelected=this.checkForThirdPartyServicesEnabled();this.contentRenderType=1;this.showGDPRPrivacyModal=!this.showGDPRPrivacyModal},toggleTermsModalVisibility:function(){this.generate();this.hasThirdPartyServicesSelected=this.checkForThirdPartyServicesEnabled();this.contentRenderType=1;this.showTermsModal=!this.showTermsModal},toggleDisclaimerModalVisibility:function(){this.showDisclaimerModal=!this.showDisclaimerModal}}});
\ No newline at end of file
diff --git a/public/js/thirdpartyservices.min.js b/public/js/thirdpartyservices.min.js
new file mode 100644
index 0000000..253bf0b
--- /dev/null
+++ b/public/js/thirdpartyservices.min.js
@@ -0,0 +1 @@
+var thirdPartyServicesJsonArray=[{name:"Google Play Services",model:"gps",gps:true,logo:"images/third_party_logos/gps.png",link:{privacy:"https://www.google.com/policies/privacy/",terms:"https://policies.google.com/terms"}},{name:"AdMob",model:"admob",admob:false,logo:"images/third_party_logos/admob.png",link:{privacy:"https://support.google.com/admob/answer/6128543?hl=en",terms:"https://developers.google.com/admob/terms"}},{name:"Google Analytics for Firebase",model:"firebase",firebase:false,logo:"images/third_party_logos/firebase.png",link:{privacy:"https://firebase.google.com/support/privacy",terms:"https://www.google.com/analytics/terms/"}},{name:"Firebase Crashlytics",model:"crashlytics",crashlytics:false,logo:"images/third_party_logos/firebase.png",link:{privacy:"https://firebase.google.com/support/privacy/",terms:"https://firebase.google.com/terms/crashlytics"}},{name:"Facebook",model:"facebook",facebook:false,logo:"images/third_party_logos/facebook.png",link:{privacy:"https://www.facebook.com/about/privacy/update/printable",terms:"https://www.facebook.com/legal/terms/plain_text_terms"}},{name:"Fabric",model:"fabric",fabric:false,logo:"images/third_party_logos/fabric.png",link:{privacy:"https://policies.google.com/privacy",terms:"https://fabric.io/terms/fabric"}},{name:"Matomo",model:"piwik",piwik:false,logo:"images/third_party_logos/piwik.png",link:{privacy:"https://matomo.org/privacy-policy/",terms:"https://matomo.org/terms"}},{name:"Clicky",model:"clicky",clicky:false,logo:"images/third_party_logos/clicky.png",link:{privacy:"https://clicky.com/terms#privacy",terms:"https://clicky.com/terms/"}},{name:"Flurry Analytics",model:"flurry",flurry:false,logo:"images/third_party_logos/flurry.png",link:{privacy:"https://privacy.oath.com",terms:"https://developer.yahoo.com/flurry/legal-privacy/terms-service/flurry-analytics-terms-service.html"}},{name:"Appodeal",model:"appodeal",appodeal:false,logo:"images/third_party_logos/appodeal.png",link:{privacy:"https://www.appodeal.com/home/privacy-policy/",terms:"https://www.appodeal.com/home/terms-of-service/"}},{name:"Fathom Analytics",model:"fathom",fathom:false,logo:"images/third_party_logos/fathom.png",link:{privacy:"https://usefathom.com/privacy/",terms:"https://usefathom.com/terms/"}},{name:"Unity",model:"unity",unity:false,logo:"images/third_party_logos/unity.png",link:{privacy:"https://unity3d.com/legal/privacy-policy",terms:"https://unity3d.com/legal/terms-of-service"}},{name:"SDKBOX",model:"sdkbox",sdkbox:false,logo:"images/third_party_logos/sdkbox.png",link:{privacy:"https://www.sdkbox.com/privacy",terms:"https://www.sdkbox.com/privacy"}},{name:"GameAnalytics",model:"gameanalytics",gameanalytics:false,logo:"images/third_party_logos/gameanalytics.png",link:{privacy:"https://gameanalytics.com/privacy",terms:"https://gameanalytics.com/terms"}},{name:"One Signal",model:"onesignal",onesignal:false,logo:"images/third_party_logos/one_signal.png",link:{privacy:"https://onesignal.com/privacy_policy",terms:"https://onesignal.com/tos"}},{name:"Expo",model:"expo",expo:false,logo:"images/third_party_logos/expo.png",link:{privacy:"https://expo.io/privacy",terms:"https://expo.io/terms"}},{name:"Sentry",model:"sentry",sentry:false,logo:"images/third_party_logos/sentry.png",link:{privacy:"https://sentry.io/privacy/",terms:"https://sentry.io/terms/"}},{name:"AppLovin",model:"applovin",applovin:false,logo:"images/third_party_logos/applovin.png",link:{privacy:"https://www.applovin.com/privacy/",terms:"https://www.applovin.com/terms/"}},{name:"Vungle",model:"vungle",vungle:false,logo:"images/third_party_logos/vungle.png",link:{privacy:"https://vungle.com/privacy/"}},{name:"StartApp",model:"startapp",startapp:false,logo:"images/third_party_logos/startapp.png",link:{privacy:"https://www.startapp.com/privacy/",terms:"https://www.startapp.com/policy/publisher-terms/"}},{name:"AdColony",model:"adcolony",adcolony:false,logo:"images/third_party_logos/adcolony.png",link:{privacy:"https://www.adcolony.com/privacy-policy/"}},{name:"Amplitude",model:"amplitude",amplitude:false,logo:"images/third_party_logos/amplitude.png",link:{privacy:"https://amplitude.com/privacy",terms:"https://amplitude.com/terms"}},{name:"Adjust",model:"adjust",adjust:false,logo:"images/third_party_logos/adjust.png",link:{privacy:"https://www.adjust.com/terms/privacy-policy",terms:"https://www.adjust.com/terms/general-terms-and-conditions"}},{name:"Mapbox",model:"mapbox",mapbox:false,logo:"images/third_party_logos/mapbox.png",link:{privacy:"https://www.mapbox.com/legal/privacy",terms:"https://www.mapbox.com/legal/tos"}},{name:"Godot",model:"godot",godot:false,logo:"images/third_party_logos/godot.png",link:{privacy:"https://godotengine.org/privacy-policy",terms:"https://godotengine.org/license"}},{name:"Segment",model:"segment",sentry:false,logo:"images/third_party_logos/segment.png",link:{privacy:"https://segment.com/legal/privacy/",terms:"https://segment.com/legal/terms/"}},{name:"Mixpanel",model:"mixpanel",mixpanel:false,logo:"images/third_party_logos/mixpanel.png",link:{privacy:"https://mixpanel.com/legal/privacy-policy/",terms:"https://mixpanel.com/legal/terms-of-use/"}},{name:"RevenueCat",model:"revenuecat",revenuecat:false,logo:"images/third_party_logos/revenuecat.png",link:{privacy:"https://www.revenuecat.com/privacy",terms:"https://www.revenuecat.com/terms"}},{name:"Clerk",model:"clerk",clerk:false,logo:"images/third_party_logos/clerk.png",link:{privacy:"https://clerk.com/privacy",terms:"https://clerk.com/terms"}}];
\ No newline at end of file
diff --git a/public/js/utils.min.js b/public/js/utils.min.js
new file mode 100644
index 0000000..9649133
--- /dev/null
+++ b/public/js/utils.min.js
@@ -0,0 +1 @@
+function convertHtmlToMd(html){let markdown=toMarkdown(html,{converters:[{filter:"div",replacement:function(content){return content}}]});return markdown}function getRawHTML(content,title){let html="\n \n \n \n \n "+title+"\n \n \n \n "+content+"\n \n \n ";return html}function getContent(id){var content=document.getElementById(id);return content.innerHTML}function getTitle(id){var content=document.getElementById(id);var title=content.getElementsByTagName("strong")[0];return title.innerHTML}function loadInTextView(id,content){document.getElementById(id).value=content}
\ No newline at end of file
diff --git a/public/site.webmanifest b/public/site.webmanifest
new file mode 100644
index 0000000..4864666
--- /dev/null
+++ b/public/site.webmanifest
@@ -0,0 +1,19 @@
+{
+ "name": "",
+ "short_name": "",
+ "icons": [
+ {
+ "src": "android-chrome-192x192.png",
+ "sizes": "192x192",
+ "type": "image/png"
+ },
+ {
+ "src": "android-chrome-512x512.png",
+ "sizes": "512x512",
+ "type": "image/png"
+ }
+ ],
+ "theme_color": "#ffffff",
+ "background_color": "#ffffff",
+ "display": "standalone"
+}
\ No newline at end of file
diff --git a/public/tile-wide.png b/public/tile-wide.png
deleted file mode 100755
index ec821c7..0000000
Binary files a/public/tile-wide.png and /dev/null differ
diff --git a/public/tile.png b/public/tile.png
deleted file mode 100755
index f29f061..0000000
Binary files a/public/tile.png and /dev/null differ
diff --git a/render.sh b/render.sh
index 79a3a39..f68ac61 100755
--- a/render.sh
+++ b/render.sh
@@ -18,28 +18,26 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
-echo "⚙️ STEP 1: RENDER PUG > HTML"
-
+echo ""
+echo " 👨🏻💻 Starting..."
+echo ""
# Using pug-cli to render from pug to html
# Specifically a fork
# - NPM: https://www.npmjs.com/package/@anduh/pug-cli
# - Github: https://github.com/Anduh/pug-cli
# because the original is not maintained anymore!
# Install pug-cli: npm install -g @anduh/pug-cli
+pug3 src/index.pug --out public --silent
+echo " ✅ STEP 1: RENDER PUG > HTML"
-pug3 src/index.pug --pretty --out public
-
-echo "⚙️ STEP 2: RENDER SASS > CSS"
+echo ""
# Using sass-cli to render from sass to css
-# Install sass-cli: npm install -g sass
sass src/sass/style.sass public/css/style.css
+echo " ✅ STEP 2: RENDER SASS > CSS"
echo ""
-echo "⚙️ STEP 3: RENDER YAML > JSON"
-
# Using js-yaml to convert yaml to json
-# Install js-yaml: npm install -g js-yaml
-JS_FILE="public/js/thirdpartyservices.js"
+JS_FILE="src/js/thirdpartyservices.js"
YAML_DIR="src/includes/yaml"
echo "/*
App Privacy Policy Generator: A simple web app to generate a generic
@@ -67,3 +65,28 @@ js-yaml $YAML_DIR/thirdpartyservices.yml >$TEMP_JSON_FILE
JSON_DATA=$(cat $TEMP_JSON_FILE)
echo "var thirdPartyServicesJsonArray = $JSON_DATA" >>$JS_FILE
rm $TEMP_JSON_FILE
+echo " ✅ STEP 3: RENDER YAML > JSON"
+
+echo ""
+uglifycss public/css/style.css --output public/css/style.min.css
+rm public/css/style.css public/css/style.css.map
+echo " ✅ STEP 4: Minify CSS"
+
+echo ""
+purgecss --css public/css/style.min.css \
+--content public/index.html \
+--output public/css/style.min.css
+echo " ✅ STEP 5: Cleanup unused CSS"
+
+echo ""
+uglifyjs src/js/thirdpartyservices.js --output public/js/thirdpartyservices.min.js
+uglifyjs src/js/main.js --output public/js/main.min.js
+uglifyjs src/js/utils.js --output public/js/utils.min.js
+uglifyjs src/js/flycricket.js --output public/js/flycricket.min.js
+echo " ✅ STEP 6: Minify JS"
+
+echo ""
+html-minifier public/index.html \
+--collapse-whitespace --keep-closing-slash --remove-comments \
+--output public/index.html
+echo " ✅ STEP 7: Minify HTML"
\ No newline at end of file
diff --git a/src/includes/content.pug b/src/includes/content.pug
index 89f9c1b..b1a6e62 100644
--- a/src/includes/content.pug
+++ b/src/includes/content.pug
@@ -1,5 +1,10 @@
-include content/hero.pug
include content/wizard.pug
+
+//- Pop-ups
include content/privacy_policies.pug
include content/tncs.pug
-include content/disclaimer.pug
\ No newline at end of file
+include content/disclaimer.pug
+
+//- Flycricket
+if flycricket
+ include content/affliate/flycricket.pug
\ No newline at end of file
diff --git a/src/includes/content/wizard/affliate/flycricket.pug b/src/includes/content/affliate/flycricket.pug
similarity index 100%
rename from src/includes/content/wizard/affliate/flycricket.pug
rename to src/includes/content/affliate/flycricket.pug
diff --git a/src/includes/content/disclaimer.pug b/src/includes/content/disclaimer.pug
index 6d079f6..9a67ccd 100644
--- a/src/includes/content/disclaimer.pug
+++ b/src/includes/content/disclaimer.pug
@@ -1,25 +1,16 @@
//- Disclaimer Modal
.modal(v-bind:class="{ 'is-active': showDisclaimerModal }")
- .modal-background
- .modal-card
- header.modal-card-head
- p.modal-card-title Disclaimer
- button.delete(aria-label='close' @click='toggleDisclaimerModalVisibility')
- section.modal-card-body
- p
- | This template for privacy policy and terms & conditions is
- | provided on "AS IS" basis, without warranties or conditions of
- | any kind, either expressed or implied. It is intended for you as
- | an inspirational document and you may use it when compiling your
- | own privacy policy. The developer of App Privacy Policy
- | Generator does not take any responsibility for the legal
- | consequences associated with the use of this privacy policy or
- | terms & conditions, and urges you to seek independent legal
- | advice ensuring compliance with all rules applicable for the
- | users of your application. The developer of App Privacy Policy
- | Generator can in no way be found liable for any direct or
- | indirect damage/loss suffered by individual/company due to the
- | use of this document.
- footer.modal-card-foot
- button.button.is-info(aria-label='close' @click='toggleDisclaimerModalVisibility')
- | Ok
\ No newline at end of file
+ .modal-background
+ .modal-card
+ header.modal-card-head
+ p.modal-card-title Disclaimer
+ button.delete(aria-label='close' @click='toggleDisclaimerModalVisibility')
+ section.modal-card-body
+ p This template for Privacy Policy and Terms & Conditions is furnished on an "AS IS" basis, devoid of any express or implied warranties or conditions.
+ p It serves as a reference document for you while drafting your own privacy policy.
+ p The developer of the App Privacy Policy Generator disclaims any liability for the legal implications arising from the utilization of this privacy policy or terms & conditions.
+ p It is strongly recommended to obtain independent legal counsel to ensure compliance with all regulations applicable to the users of your application.
+ p The developer of the App Privacy Policy Generator cannot be held accountable for any direct or indirect damage/loss incurred by an individual/company as a result of using this document.
+ footer.modal-card-foot
+ button.button.is-info(aria-label='close' @click='toggleDisclaimerModalVisibility')
+ | Ok
\ No newline at end of file
diff --git a/src/includes/content/hero.pug b/src/includes/content/hero.pug
deleted file mode 100644
index 7ceb40c..0000000
--- a/src/includes/content/hero.pug
+++ /dev/null
@@ -1,26 +0,0 @@
-section.hero.is-primary
- .hero-body
- .columns
- .column
- .content
- a.title(href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator' target='_blank' rel='noopener noreferrer')
- h1
- | App
- em Privacy Policy
- | Generator
- h4.subtitle
- | Generate a generic Privacy Policy and Terms & Conditions
- | for your apps
- p
- | Built with
- img.heart-logo(src='images/app_icons/heart.svg' alt='heart')
- | by
- a(href='http://www.nisrulz.com/' target='_blank' rel='noopener noreferrer') Nishant
- a(href='https://github.com/nisrulz/app-privacy-policy-generator/graphs/contributors' target='_blank' rel='noopener noreferrer') and contributors.
- p
- a(href='https://twitter.com/intent/tweet?text=%F0%9F%93%9D%20App%20Privacy%20Policy%20Generator%3A%20A%20free%20web-app%20to%20generate%20a%20generic%20privacy%20policy%20for%20your%20Android%2FiOS%2FKaiOS%20%F0%9F%93%B1%20apps%20%F0%9F%9A%80%20%7C%20Built%20by%20%40nisrulz%20%20%E2%9C%85%20Web%20App%3A%20https%3A%2F%2Fapp-privacy-policy-generator.nisrulz.com%20%E2%9C%85%20Checkout%20Reviews%3A%20https%3A%2F%2Fgithub.com%2Fnisrulz%2Fapp-privacy-policy-generator%2Fissues%2F65%20%F0%9F%91%A8%F0%9F%8F%BB%E2%80%8D%F0%9F%92%BB%20%23appg%20%23free%20%23app%20%23privacy%20%23policy%20%23generator%20%20' target='_blank' rel='noopener noreferrer')
- img.social-logo(src='images/social_icons/twitter.svg' alt='Twitter')
- a(@click='toggleDisclaimerModalVisibility' rel='noopener noreferrer')
- img.social-logo(src='images/app_icons/disclaimer.svg' alt='Disclaimer')
- a(href='https://github.com/nisrulz/app-privacy-policy-generator' target='_blank' rel='noopener noreferrer')
- img(alt='GitHub stars' src='https://img.shields.io/github/stars/nisrulz/app-privacy-policy-generator?style=social')
diff --git a/src/includes/content/privacy_policies.pug b/src/includes/content/privacy_policies.pug
index e847c2e..0e20191 100644
--- a/src/includes/content/privacy_policies.pug
+++ b/src/includes/content/privacy_policies.pug
@@ -2,4 +2,8 @@
include privacy_policy/simple.pug
-//- include privacy_policy/gdpr.pug
+if noTracking
+ include privacy_policy/no_tracking.pug
+
+if gdpr
+ include privacy_policy/gdpr.pug
diff --git a/src/includes/content/privacy_policy/gdpr.pug b/src/includes/content/privacy_policy/gdpr.pug
index 05cda4e..e88bbf3 100644
--- a/src/includes/content/privacy_policy/gdpr.pug
+++ b/src/includes/content/privacy_policy/gdpr.pug
@@ -1,163 +1,128 @@
-.modal(v-bind:class="{ 'is-active': showGDPRPrivacyModal }")
- .modal-background
- .modal-card
- header.modal-card-head
- p.modal-card-title.no-select GDPR Compliant Privacy Policy
- button.delete(aria-label='close' @click='toggleGDPRPrivacyModalVisibility')
- section.modal-card-body.modal-box
- #gdpr_privacy_content(v-show='contentRenderType==1')
- strong GDPR Compliant Privacy Policy
- p
- | {{ devOrCompanyName }} built the {{ appName }} app as
- | {{typeOfAppTxt}} app. This SERVICE is provided by
- | {{ devOrCompanyName }} {{ atNoCost }} and is intended for use as is.
- | This privacy policy will explain how {{ devOrCompanyName }} uses the personal data {{ iOrWe }} collect from you
- | when you use {{ appName }} app.
- p Topics:
- ul
- li What data is collected?
- li How is your data collected?
- li How will {{ appName }} use your data?
- li How is your data stored?
- li Marketing
- li What are your data protection rights?
- li What are cookies?
- li How does {{ appName }} use cookies?
- li What types of cookies does {{ appName }} use?
- li How to manage your cookies
- li Privacy policies of other websites
- li Changes to {{ appName }}'s privacy policy
- li How to contact us
- li How to contact the appropriate authorities
- p
- strong What data is collected?
- | {{ myOrOur }} Company collects the following data: 0 Personal identification
- | information (Name, email address, phone number, etc.) 0 [Add any other data your company collects]
- p
- strong How is your data collected?
- | You directly provide {{ myOrOur }} Company with most of the data {{ iOrWe }} collect. {{ iOrWe | capitalize }}
- | collect data and process data when you: 0 Register online or place an order for any of {{ myOrOur }} products or
- | services. 0 Voluntarily complete a customer survey or provide feedback on any of {{ myOrOur }} message boards or
- | via email. Use or view {{ myOrOur }} website via your browser’s cookies. [Add any other ways your company
- | collects data]
- p
- strong How will {{ appName }} use your data?
- | {{ appName }} collects your data so that {{ iOrWe }} can: Process your order, manage
- | your account. 0 Email you with special offers on other products and services {{ iOrWe }} think you might like. 0
- | [Add how else your company uses data]
- br
- | If you agree, {{ myOrOur }} Company will share your data with {{ myOrOur }} partner companies so that they may offer you
- | their products and services.
- p
- strong How is your data stored?
- | {{ myOrOur }} Company securely stores your data at [enter the location and describe
- | security precautions taken].
- br
- | {{ myOrOur }} Company will keep your [enter type of data] for [enter time period]. Once this time period has
- | expired, {{ iOrWe }} will delete your data by [enter how you delete users’ data].
- p
- strong Marketing
- | {{ myOrOur }} Company would like to send you information about products and services of ours that {{ iOrWe }}
- | think you might like, as well as those of {{ myOrOur }} partner companies. 0 [List partner companies here]
- br
- | If you have agreed to receive marketing, you may always opt out at a later date.
- br
- | You have the right at any time to stop {{ myOrOur }} Company from contacting you for marketing purposes or
- | giving your data to other members of the {{ myOrOur }} Company Group.
- br
- | If you no longer wish to be contacted for marketing purposes, please click here.
- p
- strong What are your data protection rights?
- | {{ myOrOur }} Company would like to make sure you are fully aware of all
- | of your data protection rights. Every user is entitled to the following:
- br
- | The right to access - You have the right to request {{ myOrOur }} Company for copies of your personal data. {{ iOrWe | capitalize }}
- | may charge you a small fee for this service.
- br
- | The right to rectification - You have the right to request that {{ myOrOur }} Company correct any information
- | you believe is inaccurate. You also have the right to request {{ myOrOur }} Company to complete information you
- | believe is incomplete. The right to erasure — You have the right to request that {{ myOrOur }} Company erase
- | your personal data, under certain conditions.
- br
- | The right to restrict processing - You have the right to request that {{ myOrOur }} Company restrict the
- | processing of your personal data, under certain conditions.
- br
- | The right to object to processing - You have the right to object to {{ myOrOur }} Company’s processing of
- | your personal data, under certain conditions.
- br
- | The right to data portability - You have the right to request that {{ myOrOur }} Company transfer the data that
- | {{ iOrWe }} have collected to another organization, or directly to you, under certain conditions.
- br
- | If you make a request, {{ iOrWe }} have one month to respond to you. If you would like to exercise any of these
- | rights, please contact us at {{ myOrOur }} email: Call us at: Or write to us:
- p
- strong What are cookies?
- | Cookies are text files placed on your computer to collect standard Internet log
- | information and visitor behavior information. When you visit {{ myOrOur }} websites, {{ iOrWe }} may collect information
- | from you automatically through cookies or similar technology.
- p For further information, visit allaboutcookies.org.
- p
- strong How do {{ iOrWe }} use cookies?
- | {{ myOrOur }} Company uses cookies in a range of ways to improve your experience on {{ myOrOur }}
- | website, including: 0 Keeping you signed in 0 Understanding how you use {{ myOrOur }} website 0 [Add any uses your
- | company has for cookies]
- p
- strong What types of cookies do {{ iOrWe }} use?
- | There are a number of different types of cookies, however, {{ myOrOur }}
- | website uses: 0 Functionality — {{ myOrOur }} Company uses these cookies so that {{ iOrWe }} recognize you on {{ myOrOur }}
- | website and remember your previously selected preferences. These could include what language you prefer
- | and location you are in. A mix of first-party and third-party cookies are used. 0 Advertising —
- | {{ myOrOur }} Company uses these cookies to collect information about your visit to {{ myOrOur }} website, the content you
- | viewed, the links you followed and information about your browser, device, and your IP address. {{ myOrOur }}
- | Company sometimes shares some limited aspects of this data with third parties for advertising purposes.
- | {{ iOrWe | capitalize }} may also share online data collected through cookies with {{ myOrOur }} advertising partners. This means that
- | when you visit another website, you may be shown advertising based on your browsing patterns on {{ myOrOur }}
- | website. 0 [Add any other types of cookies your company uses]
- p
- strong How to manage cookies
- | You can set your browser not to accept cookies, and the above website tells you
- | how to remove cookies from your browser. However, in a few cases, some of {{ myOrOur }} website features may not
- | function as a result.
- p
- strong Privacy policies of other websites
- | The {{ myOrOur }} Company website contains links to other websites. {{ myOrOur }}
- | privacy policy applies only to {{ myOrOur }} website, so if you click on a link to another website, you should
- | read their privacy policy.
- p
- strong Changes to {{ myOrOur }} privacy policy
- | {{ myOrOur }} Company keeps its privacy policy under regular review and places any
- | updates on this web page. This privacy policy was last updated on 9 January 2019.
- p
- strong How to contact us
- p If you have any questions or suggestions about {{ myOrOur }}
- | Privacy Policy, do not hesitate to contact {{meOrUs}} at {{
- | appContact }}.
- br
- | If you have any questions about {{ myOrOur }} Company’s privacy policy, the data {{ iOrWe }} hold
- | on you, or you would like to exercise one of your data protection rights, please do not hesitate to
- | contact us.
- p Email us at: Call us: Or write to us at:
- p
- | How to contact the appropriate authority Should you wish to report a complaint or if you feel that {{ myOrOur }}
- | Company has not addressed your concern in a satisfactory manner, you may contact the Information
- | Commissioner’s Office.
- p Email: Address
- p
- strong Changes to This Privacy Policy
- | {{iOrWe | capitalize }} may update {{ myOrOur }} Privacy Policy from
- | time to time. Thus, you are advised to review this page
- | periodically for any changes. {{iOrWe | capitalize }} will
- | notify you of any changes by posting the new Privacy Policy on
- | this page.
- p This policy is effective as of {{ effectiveFromDate }}
- p
- | This privacy policy page was generated by
- a(href='https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') App Privacy Policy Generator
- textarea#gdpr_privacy_txtarea.textarea(onclick='this.focus();this.select()' readonly='readonly' v-show='contentRenderType==2')
- footer.modal-card-foot
- button.button.is-success(@click="getHtml('gdpr_privacy_content','gdpr_privacy_txtarea')")
- | HTML
- button.button.is-success(@click="getMarkdown('gdpr_privacy_content', 'gdpr_privacy_txtarea')")
- | Markdown
- button.button.is-success(v-if='contentRenderType!=1' @click='preview()')
- | Preview
+.modal(v-bind:class="{ 'is-active': showGDPRPrivacyModal }" v-show='typeOfPolicyInt==3')
+ .modal-background
+ .modal-card
+ header.modal-card-head
+ p.modal-card-title.no-select GDPR Compliant Privacy Policy
+ button.delete(aria-label='close' @click='toggleGDPRPrivacyModalVisibility')
+ section.modal-card-body.modal-box
+ #privacy_gdpr_content(v-show='contentRenderType==1')
+ strong Privacy Policy
+
+ p This privacy policy is applicable to the {{ appName }} app (hereinafter referred to as "Application") for mobile devices, which was developed by {{ devOrCompanyName }} (hereinafter referred to as "Service Provider") as a {{typeOfAppTxt}} service. This service is provided "AS IS".
+
+ br
+ strong What information does the Application obtain and how is it used?
+ br
+ strong User Provided Information
+
+ p The Application acquires the information you supply when you download and register the Application. Registration with the Service Provider is not mandatory. However, bear in mind that you might not be able to utilize some of the features offered by the Application unless you register with them.
+
+ p The Service Provider may also use the information you provided them to contact you from time to time to provide you with important information, required notices and marketing promotions.
+
+ br
+ strong Automatically Collected Information
+
+ p In addition, the Application may collect certain information automatically, including, but not limited to, the type of mobile device you use, your mobile devices unique device ID, the IP address of your mobile device, your mobile operating system, the type of mobile Internet browsers you use, and information about the way you use the Application.
+
+ br
+ strong Does the Application collect precise real time location information of the device?
+
+ p This Application does not gather precise information about the location of your mobile device.
+
+ br
+ strong Do third parties see and/or have access to information obtained by the Application?
+
+ p Only aggregated, anonymized data is periodically transmitted to external services to aid the Service Provider in improving the Application and their service. The Service Provider may share your information with third parties in the ways that are described in this privacy statement.
+
+ div(v-if='hasThirdPartyServicesSelected')
+ br
+ p Please note that the Application utilizes third-party services that have their own Privacy Policy about handling data. Below are the links to the Privacy Policy of the third-party service providers used by the Application:
+ ul
+ li(v-if='item[item.model] && item.link.privacy' v-for='item in thirdPartyServices')
+ a(:href='item.link.privacy' target='_blank' rel='noopener noreferrer') {{item.name}}
+ p The Service Provider may disclose User Provided and Automatically Collected Information:
+ ul
+
+ li as required by law, such as to comply with a subpoena, or similar legal process;
+ li when they believe in good faith that disclosure is necessary to protect their rights, protect your safety or the safety of others, investigate fraud, or respond to a government request;
+ li with their trusted services providers who work on their behalf, do not have an independent use of the information we disclose to them, and have agreed to adhere to the rules set forth in this privacy statement.
+
+ br
+ strong What are my opt-out rights?
+
+ p You can halt all collection of information by the Application easily by uninstalling the Application. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.
+
+ br
+ strong Data Retention Policy, Managing Your Information
+
+ p The Service Provider will retain User Provided data for as long as you use the Application and for a reasonable time thereafter. The Service Provider will retain Automatically Collected information for up to 24 months and thereafter may store it in aggregate. If you'd like the Service Provider to delete User Provided Data that you have provided via the Application, please contact them at {{ appContact }} and we will respond in a reasonable time. Please note that some or all of the User Provided Data may be required in order for the Application to function properly.
+
+ br
+ strong Children
+
+ p The Service Provider does not use the Application to knowingly solicit data from or market to children under the age of 13.
+ div(v-if='hasThirdPartyServicesSelected')
+ br
+ p
+ | The Application does not address anyone under the age of 13.
+ | The Service Provider does not knowingly collect personally
+ | identifiable information from children under 13 years of age. In the case
+ | the Service Provider discover that a child under 13 has provided
+ | personal information, the Service Provider will immediately
+ | delete this from their servers. If you are a parent or guardian
+ | and you are aware that your child has provided us with
+ | personal information, please contact the Service Provider ({{ appContact }}) so that
+ | they will be able to take the necessary actions.
+ div(v-if='!hasThirdPartyServicesSelected')
+ br
+ p
+ | The Service Provider does not knowingly collect personally
+ | identifiable information from children. The Service Provider
+ | encourages all children to never submit any personally
+ | identifiable information through the Application and/or Services.
+ | The Service Provider encourage parents and legal guardians to monitor
+ | their children's Internet usage and to help enforce this Policy by instructing
+ | their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child
+ | has provided personally identifiable information to the Service Provider through the Application and/or Services,
+ | please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions.
+ | You must also be at least 16 years of age to consent to the processing
+ | of your personally identifiable information in your country (in some countries we may allow your parent
+ | or guardian to do so on your behalf).
+
+ br
+ strong Security
+
+ p The Service Provider are concerned about safeguarding the confidentiality of your information. The Service Provider provide physical, electronic, and procedural safeguards to protect information we process and maintain. For example, we limit access to this information to authorized employees and contractors who need to know that information in order to operate, develop or improve their Application. Please be aware that, although we endeavor provide reasonable security for information we process and maintain, no security system can prevent all potential security breaches.
+
+ br
+ strong Changes
+
+ p This Privacy Policy may be updated from time to time for any reason. The Service Provider will notify you of any changes to the Privacy Policy by updating this page with the new Privacy Policy. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
+ br
+ p This privacy policy is effective as of {{ effectiveFromDate }}
+
+ br
+ strong Your Consent
+
+ p By using the Application, you are giving your consent to the Service Provider processing of your information as set forth in this Privacy Policy now and as amended by us. "Processing,” means using cookies on a computer/hand held device or using or touching information in any way, including, but not limited to, collecting, storing, deleting, using, combining and disclosing information.
+
+ br
+ strong Contact us
+
+ p If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at {{ appContact }}.
+ hr
+ p This privacy policy page was generated by
+ a(href='https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') App Privacy Policy Generator
+ textarea#privacy_gdpr_txtarea.textarea(onclick='this.focus();this.select()' readonly='readonly' v-show='contentRenderType==2')
+ footer.modal-card-foot
+ button.button.is-primary(@click="getHtml('privacy_gdpr_content','privacy_gdpr_txtarea')")
+ | HTML
+ button.button.is-primary(@click="getMarkdown('privacy_gdpr_content', 'privacy_gdpr_txtarea')")
+ | Markdown
+ button.button.is-primary(v-if='contentRenderType!=1' @click='preview()')
+ | Preview
+ //- Flycricket
+ if (flycricket)
+ div(style='flex:1')
+ button.button.is-info(@click="fc_deploy_gdpr()" style='float:right;')
+ | Deploy to Flycricket
diff --git a/src/includes/content/privacy_policy/no_tracking.pug b/src/includes/content/privacy_policy/no_tracking.pug
new file mode 100644
index 0000000..98f180e
--- /dev/null
+++ b/src/includes/content/privacy_policy/no_tracking.pug
@@ -0,0 +1,90 @@
+.modal(v-bind:class="{ 'is-active': showNoTrackingPrivacyPolicyModal }" v-show='typeOfPolicyInt==2')
+ .modal-background
+ .modal-card
+ header.modal-card-head
+ p.modal-card-title.no-select No Tracking Privacy Policy
+ button.delete(aria-label='close' @click='toggleNoTrackingPrivacyPolicyModalVisibility')
+ section.modal-card-body.modal-box
+ #privacy_notrack_content(v-show='contentRenderType==1')
+ strong Privacy Policy
+
+ p This privacy policy applies to the {{ appName }} app (hereby referred to as "Application") for mobile devices that was created by {{ devOrCompanyName }} (hereby referred to as "Service Provider") as {{typeOfAppTxt}} service. This service is intended for use "AS IS".
+
+ br
+ strong What information does the Application obtain and how is it used?
+
+ p The Application does not obtain any information when you download and use it. Registration is not required to use the Application.
+
+ br
+ strong Does the Application collect precise real time location information of the device?
+
+ p This Application does not collect precise information about the location of your mobile device.
+
+ br
+ strong Do third parties see and/or have access to information obtained by the Application?
+
+ p Since the Application does not collect any information, no data is shared with third parties.
+
+ br
+ strong What are my opt-out rights?
+
+ p You can stop all collection of information by the Application easily by uninstalling it. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.
+
+ br
+ strong Children
+
+ p The Application is not used to knowingly solicit data from or market to children under the age of 13.
+
+ br
+ p
+ | The Service Provider does not knowingly collect personally
+ | identifiable information from children. The Service Provider
+ | encourages all children to never submit any personally
+ | identifiable information through the Application and/or Services.
+ | The Service Provider encourage parents and legal guardians to monitor
+ | their children's Internet usage and to help enforce this Policy by instructing
+ | their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child
+ | has provided personally identifiable information to the Service Provider through the Application and/or Services,
+ | please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions.
+ | You must also be at least 16 years of age to consent to the processing
+ | of your personally identifiable information in your country (in some countries we may allow your parent
+ | or guardian to do so on your behalf).
+
+ br
+ strong Security
+
+ p The Service Provider is concerned about safeguarding the confidentiality of your information. However, since the Application does not collect any information, there is no risk of your data being accessed by unauthorized individuals.
+ br
+
+ strong Changes
+
+ p This Privacy Policy may be updated from time to time for any reason. The Service Provider will notify you of any changes to their Privacy Policy by updating this page with the new Privacy Policy. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
+ br
+ p This privacy policy is effective as of {{ effectiveFromDate }}
+
+ br
+ strong Your Consent
+
+ p By using the Application, you are consenting to the processing of your information as set forth in this Privacy Policy now and as amended by the Service Provider.
+
+ br
+ strong Contact Us
+
+ p If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at {{ appContact }}.
+
+ hr
+ p This privacy policy page was generated by
+ a(href='https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') App Privacy Policy Generator
+ textarea#privacy_notrack_txtarea.textarea(onclick='this.focus();this.select()' readonly='readonly' v-show='contentRenderType==2')
+ footer.modal-card-foot
+ button.button.is-primary(@click="getHtml('privacy_notrack_content','privacy_notrack_txtarea')")
+ | HTML
+ button.button.is-primary(@click="getMarkdown('privacy_notrack_content', 'privacy_notrack_txtarea')")
+ | Markdown
+ button.button.is-primary(v-if='contentRenderType!=1' @click='preview()')
+ | Preview
+ //- Flycricket
+ if (flycricket)
+ div(style='flex:1')
+ button.button.is-info(@click="fc_deploy_notracking()" style='float:right;')
+ | Deploy to Flycricket
diff --git a/src/includes/content/privacy_policy/simple.pug b/src/includes/content/privacy_policy/simple.pug
index 10135a0..270d372 100644
--- a/src/includes/content/privacy_policy/simple.pug
+++ b/src/includes/content/privacy_policy/simple.pug
@@ -1,169 +1,121 @@
-.modal(v-bind:class="{ 'is-active': showPrivacyModal }")
- .modal-background
- .modal-card
- header.modal-card-head
- p.modal-card-title.no-select Privacy Policy
- button.delete(aria-label='close' @click='togglePrivacyModalVisibility')
- section.modal-card-body.modal-box
- #privacy_content(v-show='contentRenderType==1')
- strong Privacy Policy
- p
- | {{ devOrCompanyName }} built the {{ appName }} app as
- | {{typeOfAppTxt}} app. This SERVICE is provided by
- | {{ devOrCompanyName }} {{ atNoCost }} and is intended for use as
- | is.
- p
- | This page is used to inform visitors regarding {{myOrOur}}
- | policies with the collection, use, and disclosure of Personal
- | Information if anyone decided to use {{myOrOur}} Service.
- p
- | If you choose to use {{ myOrOur }} Service, then you agree to
- | the collection and use of information in relation to this
- | policy. The Personal Information that {{iOrWe}} collect is
- | used for providing and improving the Service. {{iOrWe |
- | capitalize }} will not use or share your information with
- | anyone except as described in this Privacy Policy.
- p
- | The terms used in this Privacy Policy have the same meanings
- | as in our Terms and Conditions, which are accessible at
- | {{ appName }} unless otherwise defined in this Privacy Policy.
- p
- strong Information Collection and Use
- p
- | For a better experience, while using our Service, {{ iOrWe }}
- | may require you to provide us with certain personally
- | identifiable information{{pidInfo}} The information that
- | {{iOrWe}} request will be {{retainedInfo}}.
- div(v-if='hasThirdPartyServicesSelected')
- p
- | The app does use third-party services that may collect
- | information used to identify you.
- p
- | Link to the privacy policy of third-party service providers used
- | by the app
- ul
- li(v-if='item[item.model] && item.link.privacy' v-for='item in thirdPartyServices')
- a(:href='item.link.privacy' target='_blank' rel='noopener noreferrer') {{item.name}}
- p
- strong Log Data
- p
- | {{iOrWe | capitalize }} want to inform you that whenever you
- | use {{myOrOur}} Service, in a case of an error in the app
- | {{iOrWe}} collect data and information (through third-party
- | products) on your phone called Log Data. This Log Data may
- | include information such as your device Internet Protocol
- | (“IP”) address, device name, operating system version, the
- | configuration of the app when utilizing {{ myOrOur }} Service,
- | the time and date of your use of the Service, and other
- | statistics.
- p
- strong Cookies
- p
- | Cookies are files with a small amount of data that are
- | commonly used as anonymous unique identifiers. These are sent
- | to your browser from the websites that you visit and are
- | stored on your device's internal memory.
- p
- | This Service does not use these “cookies” explicitly. However,
- | the app may use third-party code and libraries that use
- | “cookies” to collect information and improve their services.
- | You have the option to either accept or refuse these cookies
- | and know when a cookie is being sent to your device. If you
- | choose to refuse our cookies, you may not be able to use some
- | portions of this Service.
- p
- strong Service Providers
- p
- | {{iOrWe | capitalize }} may employ third-party companies and
- | individuals due to the following reasons:
- ul
- li To facilitate our Service;
- li To provide the Service on our behalf;
- li To perform Service-related services; or
- li To assist us in analyzing how our Service is used.
- p
- | {{iOrWe | capitalize }} want to inform users of this Service
- | that these third parties have access to their Personal
- | Information. The reason is to perform the tasks assigned to
- | them on our behalf. However, they are obligated not to
- | disclose or use the information for any other purpose.
- p
- strong Security
- p
- | {{iOrWe | capitalize }} value your trust in providing us your
- | Personal Information, thus we are striving to use commercially
- | acceptable means of protecting it. But remember that no method
- | of transmission over the internet, or method of electronic
- | storage is 100% secure and reliable, and {{ iOrWe }} cannot
- | guarantee its absolute security.
- p
- strong Links to Other Sites
- p
- | This Service may contain links to other sites. If you click on
- | a third-party link, you will be directed to that site. Note
- | that these external sites are not operated by {{ meOrUs }}.
- | Therefore, {{ iOrWe }} strongly advise you to review the
- | Privacy Policy of these websites. {{iOrWe | capitalize }} have
- | no control over and assume no responsibility for the content,
- | privacy policies, or practices of any third-party sites or
- | services.
- p
- strong Children’s Privacy
- div(v-if='hasThirdPartyServicesSelected')
- p
- | These Services do not address anyone under the age of 13.
- | {{iOrWe | capitalize }} do not knowingly collect personally
- | identifiable information from children under 13 years of age. In the case
- | {{ iOrWe }} discover that a child under 13 has provided
- | {{ meOrUs }} with personal information, {{ iOrWe }} immediately
- | delete this from our servers. If you are a parent or guardian
- | and you are aware that your child has provided us with
- | personal information, please contact {{ meOrUs }} so that
- | {{ iOrWe }} will be able to do the necessary actions.
- div(v-if='!hasThirdPartyServicesSelected')
- p
- | {{iOrWe | capitalize }} do not knowingly collect personally
- | identifiable information from children. {{iOrWe | capitalize }}
- | encourage all children to never submit any personally
- | identifiable information through
- | the Application and/or Services.
- | {{iOrWe | capitalize }} encourage parents and legal guardians to monitor
- | their children's Internet usage and to help enforce this Policy by instructing
- | their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child
- | has provided personally identifiable information to us through the Application and/or Services,
- | please contact us. You must also be at least 16 years of age to consent to the processing
- | of your personally identifiable information in your country (in some countries we may allow your parent
- | or guardian to do so on your behalf).
- p
- strong Changes to This Privacy Policy
- p
- | {{iOrWe | capitalize }} may update our Privacy Policy from
- | time to time. Thus, you are advised to review this page
- | periodically for any changes. {{iOrWe | capitalize }} will
- | notify you of any changes by posting the new Privacy Policy on
- | this page.
- p This policy is effective as of {{ effectiveFromDate }}
- p
- strong Contact Us
- p
- | If you have any questions or suggestions about {{ myOrOur }}
- | Privacy Policy, do not hesitate to contact {{meOrUs}} at {{
- | appContact }}.
- p
- | This privacy policy page was created at
- a(href='https://privacypolicytemplate.net' target='_blank' rel='noopener noreferrer') privacypolicytemplate.net
- | and modified/generated by
- a(href='https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') App Privacy Policy Generator
- textarea#privacy_txtarea.textarea(onclick='this.focus();this.select()' readonly='readonly' v-show='contentRenderType==2')
- footer.modal-card-foot
- button.button.is-success(@click="getHtml('privacy_content','privacy_txtarea')")
- | HTML
- button.button.is-success(@click="getMarkdown('privacy_content', 'privacy_txtarea')")
- | Markdown
- button.button.is-success(v-if='contentRenderType!=1' @click='preview()')
- | Preview
- //- Flycricket
- if (flycricket)
- div(style='flex:1')
- button.button.is-info(@click="fc_deploy()" style='float:right;')
- | Deploy to Flycricket
+.modal(v-bind:class="{ 'is-active': showPrivacyModal }" v-show='typeOfPolicyInt==1')
+ .modal-background
+ .modal-card
+ header.modal-card-head
+ p.modal-card-title.no-select Simple Privacy Policy
+ button.delete(aria-label='close' @click='togglePrivacyModalVisibility')
+ section.modal-card-body.modal-box
+ #privacy_simple_content(v-show='contentRenderType==1')
+ strong Privacy Policy
+
+ p This privacy policy applies to the {{ appName }} app (hereby referred to as "Application") for mobile devices that was created by {{ devOrCompanyName }} (hereby referred to as "Service Provider") as {{typeOfAppTxt}} service. This service is intended for use "AS IS".
+
+ br
+ strong Information Collection and Use
+
+ p The Application collects information when you download and use it. This information may include information such as
+ ul
+ li Your device's Internet Protocol address (e.g. IP address)
+ li The pages of the Application that you visit, the time and date of your visit, the time spent on those pages
+ li The time spent on the Application
+ li The operating system you use on your mobile device
+ p ...and more.
+
+ p The Service Provider may use the information you provided to contact you from time to time to provide you with important information, required notices and marketing promotions.
+
+ br
+ p For a better experience, while using the Application, the Service Provider may require you to provide us with certain personally identifiable information{{pidInfo}} The information that the Service Provider request will be retained by them and used as described in this privacy policy.
+
+ br
+ strong Third Party Access
+
+ p Only aggregated, anonymized data is periodically transmitted to external services to aid the Service Provider in improving the Application and their service. The Service Provider may share your information with third parties in the ways that are described in this privacy statement.
+
+ div(v-if='hasThirdPartyServicesSelected')
+ br
+ p Please note that the Application utilizes third-party services that have their own Privacy Policy about handling data. Below are the links to the Privacy Policy of the third-party service providers used by the Application:
+ ul
+ li(v-if='item[item.model] && item.link.privacy' v-for='item in thirdPartyServices')
+ a(:href='item.link.privacy' target='_blank' rel='noopener noreferrer') {{item.name}}
+ br
+
+ p The Service Provider may disclose User Provided and Automatically Collected Information:
+ ul
+
+ li as required by law, such as to comply with a subpoena, or similar legal process;
+ li when they believe in good faith that disclosure is necessary to protect their rights, protect your safety or the safety of others, investigate fraud, or respond to a government request;
+ li with their trusted services providers who work on their behalf, do not have an independent use of the information we disclose to them, and have agreed to adhere to the rules set forth in this privacy statement.
+ br
+
+ strong Opt-Out Rights
+ p You can stop all collection of information by the Application easily by uninstalling it. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.
+
+ br
+ strong Data Retention Policy
+ p The Service Provider will retain User Provided data for as long as you use the Application and for a reasonable time thereafter. If you'd like them to delete User Provided Data that you have provided via the Application, please contact them at {{ appContact }} and they will respond in a reasonable time.
+
+ br
+ strong Children
+ p The Service Provider does not use the Application to knowingly solicit data from or market to children under the age of 13.
+ div(v-if='hasThirdPartyServicesSelected')
+ br
+ p
+ | The Application does not address anyone under the age of 13.
+ | The Service Provider does not knowingly collect personally
+ | identifiable information from children under 13 years of age. In the case
+ | the Service Provider discover that a child under 13 has provided
+ | personal information, the Service Provider will immediately
+ | delete this from their servers. If you are a parent or guardian
+ | and you are aware that your child has provided us with
+ | personal information, please contact the Service Provider ({{ appContact }}) so that
+ | they will be able to take the necessary actions.
+ div(v-if='!hasThirdPartyServicesSelected')
+ br
+ p
+ | The Service Provider does not knowingly collect personally
+ | identifiable information from children. The Service Provider
+ | encourages all children to never submit any personally
+ | identifiable information through the Application and/or Services.
+ | The Service Provider encourage parents and legal guardians to monitor
+ | their children's Internet usage and to help enforce this Policy by instructing
+ | their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child
+ | has provided personally identifiable information to the Service Provider through the Application and/or Services,
+ | please contact the Service Provider ({{ appContact }}) so that they will be able to take the necessary actions.
+ | You must also be at least 16 years of age to consent to the processing
+ | of your personally identifiable information in your country (in some countries we may allow your parent
+ | or guardian to do so on your behalf).
+
+ br
+ strong Security
+ p The Service Provider is concerned about safeguarding the confidentiality of your information. The Service Provider provides physical, electronic, and procedural safeguards to protect information the Service Provider processes and maintains.
+
+ br
+ strong Changes
+ p This Privacy Policy may be updated from time to time for any reason. The Service Provider will notify you of any changes to the Privacy Policy by updating this page with the new Privacy Policy. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.
+ br
+ p This privacy policy is effective as of {{ effectiveFromDate }}
+
+ br
+ strong Your Consent
+ p By using the Application, you are consenting to the processing of your information as set forth in this Privacy Policy now and as amended by us.
+
+ br
+ strong Contact Us
+ p If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at {{ appContact }}.
+
+ hr
+ p This privacy policy page was generated by
+ a(href='https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') App Privacy Policy Generator
+ textarea#privacy_simple_txtarea.textarea(onclick='this.focus();this.select()' readonly='readonly' v-show='contentRenderType==2')
+ footer.modal-card-foot
+ button.button.is-primary(@click="getHtml('privacy_simple_content','privacy_simple_txtarea')")
+ | HTML
+ button.button.is-primary(@click="getMarkdown('privacy_simple_content', 'privacy_simple_txtarea')")
+ | Markdown
+ button.button.is-primary(v-if='contentRenderType!=1' @click='preview()')
+ | Preview
+ //- Flycricket
+ if (flycricket)
+ div(style='flex:1')
+ button.button.is-info(@click="fc_deploy_simple()" style='float:right;')
+ | Deploy to Flycricket
diff --git a/src/includes/content/tnc/simple.pug b/src/includes/content/tnc/simple.pug
index 6f45e51..cc5da7b 100644
--- a/src/includes/content/tnc/simple.pug
+++ b/src/includes/content/tnc/simple.pug
@@ -1,137 +1,57 @@
.modal(v-bind:class="{ 'is-active': showTermsModal }")
- .modal-background
- .modal-card
- header.modal-card-head
- p.modal-card-title.no-select Terms & Conditions
- button.delete(aria-label='close' @click='toggleTermsModalVisibility')
- section.modal-card-body.modal-box
- #tandc_content(v-show='contentRenderType==1')
- strong Terms & Conditions
- p
- | By downloading or using the app, these terms will
- | automatically apply to you – you should make sure therefore
- | that you read them carefully before using the app. You’re not
- | allowed to copy or modify the app, any part of the app, or
- | our trademarks in any way. You’re not allowed to attempt to
- | extract the source code of the app, and you also shouldn’t try
- | to translate the app into other languages or make derivative
- | versions. The app itself, and all the trademarks, copyright,
- | database rights, and other intellectual property rights related
- | to it, still belong to {{devOrCompanyName}}.
- p
- | {{devOrCompanyName}} is committed to ensuring that the app is
- | as useful and efficient as possible. For that reason, we
- | reserve the right to make changes to the app or to charge for
- | its services, at any time and for any reason. We will never
- | charge you for the app or its services without making it very
- | clear to you exactly what you’re paying for.
- p
- | The {{appName}} app stores and processes personal data that
- | you have provided to us, to provide {{myOrOur}}
- | Service. It’s your responsibility to keep your phone and
- | access to the app secure. We therefore recommend that you do
- | not jailbreak or root your phone, which is the process of
- | removing software restrictions and limitations imposed by the
- | official operating system of your device. It could make your
- | phone vulnerable to malware/viruses/malicious programs,
- | compromise your phone’s security features and it could mean
- | that the {{appName}} app won’t work properly or at all.
- div(v-if='hasThirdPartyServicesSelected')
- p
- | The app does use third-party services that declare their
- | Terms and Conditions.
- p
- | Link to Terms and Conditions of third-party service
- | providers used by the app
- ul
- li(v-if='item[item.model] && item.link.terms' v-for='item in thirdPartyServices')
- a(:href='item.link.terms' target='_blank' rel='noopener noreferrer') {{item.name}}
- p
- | You should be aware that there are certain things that
- | {{devOrCompanyName}} will not take responsibility for. Certain
- | functions of the app will require the app to have an active
- | internet connection. The connection can be Wi-Fi or provided
- | by your mobile network provider, but {{devOrCompanyName}}
- | cannot take responsibility for the app not working at full
- | functionality if you don’t have access to Wi-Fi, and you don’t
- | have any of your data allowance left.
- p
- p
- | If you’re using the app outside of an area with Wi-Fi, you
- | should remember that the terms of the agreement with your
- | mobile network provider will still apply. As a result, you may
- | be charged by your mobile provider for the cost of data for
- | the duration of the connection while accessing the app, or
- | other third-party charges. In using the app, you’re accepting
- | responsibility for any such charges, including roaming data
- | charges if you use the app outside of your home territory
- | (i.e. region or country) without turning off data roaming. If
- | you are not the bill payer for the device on which you’re
- | using the app, please be aware that we assume that you have
- | received permission from the bill payer for using the app.
- p
- | Along the same lines, {{devOrCompanyName}} cannot always take
- | responsibility for the way you use the app i.e. You need to
- | make sure that your device stays charged – if it runs out of
- | battery and you can’t turn it on to avail the Service,
- | {{devOrCompanyName}} cannot accept responsibility.
- p
- | With respect to {{devOrCompanyName}}’s responsibility for your
- | use of the app, when you’re using the app, it’s important to
- | bear in mind that although we endeavor to ensure that it is
- | updated and correct at all times, we do rely on third parties
- | to provide information to us so that we can make it available
- | to you. {{devOrCompanyName}} accepts no liability for any
- | loss, direct or indirect, you experience as a result of
- | relying wholly on this functionality of the app.
- p
- | At some point, we may wish to update the app. The app is
- | currently available on {{osType}} – the requirements for the
- | {{requirementOfSystem}}(and for any additional systems we
- | decide to extend the availability of the app to) may change,
- | and you’ll need to download the updates if you want to keep
- | using the app. {{devOrCompanyName}} does not promise that it
- | will always update the app so that it is relevant to you
- | and/or works with the {{osType}} version that you have
- | installed on your device. However, you promise to always
- | accept updates to the application when offered to you, We may
- | also wish to stop providing the app, and may terminate use of
- | it at any time without giving notice of termination to you.
- | Unless we tell you otherwise, upon any termination, (a) the
- | rights and licenses granted to you in these terms will end;
- | (b) you must stop using the app, and (if needed) delete it
- | from your device.
- p
- strong Changes to This Terms and Conditions
- p
- | {{iOrWe | capitalize }} may update our Terms and Conditions
- | from time to time. Thus, you are advised to review this page
- | periodically for any changes. {{iOrWe | capitalize }} will
- | notify you of any changes by posting the new Terms and
- | Conditions on this page.
- p
- | These terms and conditions are effective as of {{
- | effectiveFromDate }}
- p
- strong Contact Us
- p
- | If you have any questions or suggestions about {{ myOrOur }}
- | Terms and Conditions, do not hesitate to contact {{ meOrUs }}
- | at {{ appContact }}.
- p
- | This Terms and Conditions page was generated by
- a(href='https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') App Privacy Policy Generator
- textarea#tandc_txtarea.textarea(onclick='this.focus();this.select()' readonly='readonly' v-show='contentRenderType==2')
- footer.modal-card-foot
- button.button.is-success(@click="getHtml('tandc_content','tandc_txtarea')")
- | HTML
- button.button.is-success(@click="getMarkdown('tandc_content', 'tandc_txtarea')")
- | Markdown
- button.button.is-success(v-if='contentRenderType!=1' @click='preview()')
- | Preview
- //- Flycricket
- if (flycricket)
- div(style='flex:1')
- button.button.is-info(@click="fc_deploy()" style='float:right;')
- | Deploy to Flycricket
+ .modal-background
+ .modal-card
+ header.modal-card-head
+ p.modal-card-title.no-select Terms & Conditions
+ button.delete(aria-label='close' @click='toggleTermsModalVisibility')
+ section.modal-card-body.modal-box
+ #tandc_content(v-show='contentRenderType==1')
+ strong Terms & Conditions
+ br
+ p These terms and conditions applies to the {{ appName }} app (hereby referred to as "Application") for mobile devices that was created by {{ devOrCompanyName }} (hereby referred to as "Service Provider") as {{typeOfAppTxt}} service.
+ br
+ p Upon downloading or utilizing the Application, you are automatically agreeing to the following terms. It is strongly advised that you thoroughly read and understand these terms prior to using the Application. Unauthorized copying, modification of the Application, any part of the Application, or our trademarks is strictly prohibited. Any attempts to extract the source code of the Application, translate the Application into other languages, or create derivative versions are not permitted. All trademarks, copyrights, database rights, and other intellectual property rights related to the Application remain the property of the Service Provider.
+ br
+ p The Service Provider is dedicated to ensuring that the Application is as beneficial and efficient as possible. As such, they reserve the right to modify the Application or charge for their services at any time and for any reason. The Service Provider assures you that any charges for the Application or its services will be clearly communicated to you.
+ br
+ p The Application stores and processes personal data that you have provided to the Service Provider in order to provide the Service. It is your responsibility to maintain the security of your phone and access to the Application. The Service Provider strongly advise against jailbreaking or rooting your phone, which involves removing software restrictions and limitations imposed by the official operating system of your device. Such actions could expose your phone to malware, viruses, malicious programs, compromise your phone's security features, and may result in the Application not functioning correctly or at all.
+ div(v-if='hasThirdPartyServicesSelected')
+ p Please note that the Application utilizes third-party services that have their own Terms and Conditions. Below are the links to the Terms and Conditions of the third-party service providers used by the Application:
+ ul
+ li(v-if='item[item.model] && item.link.terms' v-for='item in thirdPartyServices')
+ a(:href='item.link.terms' target='_blank' rel='noopener noreferrer') {{item.name}}
+ br
+ p Please be aware that the Service Provider does not assume responsibility for certain aspects. Some functions of the Application require an active internet connection, which can be Wi-Fi or provided by your mobile network provider. The Service Provider cannot be held responsible if the Application does not function at full capacity due to lack of access to Wi-Fi or if you have exhausted your data allowance.
+ br
+ p If you are using the application outside of a Wi-Fi area, please be aware that your mobile network provider's agreement terms still apply. Consequently, you may incur charges from your mobile provider for data usage during the connection to the application, or other third-party charges. By using the application, you accept responsibility for any such charges, including roaming data charges if you use the application outside of your home territory (i.e., region or country) without disabling data roaming. If you are not the bill payer for the device on which you are using the application, they assume that you have obtained permission from the bill payer.
+ br
+ p Similarly, the Service Provider cannot always assume responsibility for your usage of the application. For instance, it is your responsibility to ensure that your device remains charged. If your device runs out of battery and you are unable to access the Service, the Service Provider cannot be held responsible.
+ br
+ p In terms of the Service Provider's responsibility for your use of the application, it is important to note that while they strive to ensure that it is updated and accurate at all times, they do rely on third parties to provide information to them so that they can make it available to you. The Service Provider accepts no liability for any loss, direct or indirect, that you experience as a result of relying entirely on this functionality of the application.
+ br
+ p The Service Provider may wish to update the application at some point. The application is currently available as per the requirements for the operating system (and for any additional systems they decide to extend the availability of the application to) may change, and you will need to download the updates if you want to continue using the application. The Service Provider does not guarantee that it will always update the application so that it is relevant to you and/or compatible with the particular operating system version installed on your device. However, you agree to always accept updates to the application when offered to you. The Service Provider may also wish to cease providing the application and may terminate its use at any time without providing termination notice to you. Unless they inform you otherwise, upon any termination, (a) the rights and licenses granted to you in these terms will end; (b) you must cease using the application, and (if necessary) delete it from your device.
+ br
+ strong Changes to These Terms and Conditions
+ p The Service Provider may periodically update their Terms and Conditions. Therefore, you are advised to review this page regularly for any changes. The Service Provider will notify you of any changes by posting the new Terms and Conditions on this page.
+ br
+ p These terms and conditions are effective as of {{ effectiveFromDate }}
+ br
+ strong Contact Us
+ p If you have any questions or suggestions about the Terms and Conditions, please do not hesitate to contact the Service Provider at {{ appContact }}.
+ hr
+ p This Terms and Conditions page was generated by
+ a(href='https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') App Privacy Policy Generator
+ textarea#tandc_txtarea.textarea(onclick='this.focus();this.select()' readonly='readonly' v-show='contentRenderType==2')
+ footer.modal-card-foot
+ button.button.is-primary(@click="getHtml('tandc_content','tandc_txtarea')")
+ | HTML
+ button.button.is-primary(@click="getMarkdown('tandc_content', 'tandc_txtarea')")
+ | Markdown
+ button.button.is-primary(v-if='contentRenderType!=1' @click='preview()')
+ | Preview
+ //- Flycricket
+ if (flycricket)
+ div(style='flex:1')
+ button.button.is-info(@click="fc_deploy_simple()" style='float:right;')
+ | Deploy to Flycricket
diff --git a/src/includes/content/wizard.pug b/src/includes/content/wizard.pug
index 6323645..f170752 100644
--- a/src/includes/content/wizard.pug
+++ b/src/includes/content/wizard.pug
@@ -1,8 +1,7 @@
-section#step-1.section(v-if='wizardStep==1')
- include wizard/step1.pug
-
-section#step-2.section(v-if='wizardStep==2')
- include wizard/step2.pug
-
-section#step-3.section(v-if='wizardStep==3')
- include wizard/step3.pug
+include wizard/step_1.pug
+include wizard/step_2.pug
+include wizard/step_3.pug
+include wizard/step_4.pug
+include wizard/step_5.pug
+include wizard/step_6.pug
+include wizard/step_7.pug
\ No newline at end of file
diff --git a/src/includes/content/wizard/step1.pug b/src/includes/content/wizard/step1.pug
deleted file mode 100644
index fbcd440..0000000
--- a/src/includes/content/wizard/step1.pug
+++ /dev/null
@@ -1,70 +0,0 @@
-.columns
- .column.is-6.is-information
- img.center-block.sidebar-img(src='images/app_graphics/step_1.svg')
- img.center-block.nav-btn(src='images/app_icons/next.png' @click='nextStep()')
- .column.box.scrollable
- .control.is-expanded
- p.help.form-label App Name
- input.input(
- type='text'
- required
- v-model='appName'
- placeholder='Awesome App Name'
- v-bind:class="{ 'is-danger': (appName == 'Please provide an App Name!' || appName.length == 0) }"
- )
- .control.is-expanded
- p.help.form-label Contact Information
- input.input(
- type='email'
- required
- v-model='appContact'
- placeholder='Email Address'
- v-bind:class="{ 'is-danger': (appContact == 'Please provide contact info!' || appContact.length == 0) }"
- )
- .control.is-expanded
- p.help.form-label
- | Personally Identifiable Information
- // PII
- input.input.is-primary(type='text' v-model='pidInfoIn' placeholder='Personally Identifiable Information you collect (comma separated)')
- .control.is-expanded
- p.help.form-label App Type
- // Type of App
- .select.is-primary
- select(v-model='typeOfApp')
- option(value='' disabled='') Select app type
- option Free
- option Open Source
- option Freemium
- option Ad Supported
- option Commercial
- .control.is-expanded
- p.help.form-label Mobile OS
- // Mobile OS
- .select.is-primary
- select(v-model='osType')
- option(value='' disabled='') Select mobile OS
- option Android
- option iOS
- option KaiOS
- option Android & iOS
- option Android, iOS & KaiOS
- .control
- p.help.form-label Policy Effective Date
- // Policy Effective Date
- input.input.is-primary(type='date' required='' v-model='effectiveFromDate')
- .control.is-expanded
- p.help.form-label OwnerType
- // Owner
- .select.is-primary
- select(v-model='typeOfDev')
- option(value='' disabled='') Select owner type
- option Individual
- option Company
- .control.is-expanded(v-if="typeOfDev=='Company'")
- p.help.form-label Company Name
- // Company Name
- input.input.is-primary(type='text' v-model='companyName' placeholder='Company Name')
- .control.is-expanded(v-if="typeOfDev=='Individual'")
- p.help.form-label Developer Name
- // Developer Name
- input.input.is-primary(type='text' v-model='devName' placeholder='Developer Name')
diff --git a/src/includes/content/wizard/step2.pug b/src/includes/content/wizard/step2.pug
deleted file mode 100644
index 5ef987c..0000000
--- a/src/includes/content/wizard/step2.pug
+++ /dev/null
@@ -1,15 +0,0 @@
-.columns
- .column.is-6.is-information
- img.center-block.sidebar-img(src='images/app_graphics/step_2.svg')
- .center-parent
- img.child.nav-btn(src='images/app_icons/prev.png' @click='prevStep()')
- img.child.nav-btn(src='images/app_icons/next.png' @click='nextStep()')
- .column.box.scrollable
- b
- | Include links to Third Party Services
- a(v-for='item in thirdPartyServices' rel='noopener noreferrer')
- br
- input(type='checkbox' :id="'list-switch-' + item.model" v-model='item[item.model]')
- label(:for="'list-switch-' + item.model")
- img.thirdparty-logo(:src='item.logo' :alt='item.name')
- span.thirdparty-text {{ item.name }}
diff --git a/src/includes/content/wizard/step3.pug b/src/includes/content/wizard/step3.pug
deleted file mode 100644
index 276d8ac..0000000
--- a/src/includes/content/wizard/step3.pug
+++ /dev/null
@@ -1,37 +0,0 @@
-.columns
- .column.is-6.is-information
- img.center-block.sidebar-img(src='images/app_graphics/step_3.svg')
- img.center-block.nav-btn(src='images/app_icons/prev.png' @click='prevStep()')
- .column
- .box
- ol While App Privacy Policy Generator is completely FREE, it takes money to keep it running and updated.
- p If you are able to, then consider contributing by:
- li
- a(href='https://github.com/sponsors/nisrulz' target='_blank' rel='noopener noreferrer') Sponsoring me on Github 👨🏻💻
- li
- a(href='https://ko-fi.com/nisrulz' target='_blank' rel='noopener noreferrer') Buying me a cup of ☕
- p If you are unable to contribute with funds, consider sharing it with your friends:
- a(href='https://twitter.com/intent/tweet?text=%F0%9F%93%9D%20App%20Privacy%20Policy%20Generator%3A%20A%20free%20web-app%20to%20generate%20a%20generic%20privacy%20policy%20for%20your%20Android%2FiOS%2FKaiOS%20%F0%9F%93%B1%20apps%20%F0%9F%9A%80%20%7C%20Built%20by%20%40nisrulz%20%20%E2%9C%85%20Web%20App%3A%20https%3A%2F%2Fapp-privacy-policy-generator.nisrulz.com%20%E2%9C%85%20Checkout%20Reviews%3A%20https%3A%2F%2Fgithub.com%2Fnisrulz%2Fapp-privacy-policy-generator%2Fissues%2F65%20%F0%9F%91%A8%F0%9F%8F%BB%E2%80%8D%F0%9F%92%BB%20%23appg%20%23free%20%23app%20%23privacy%20%23policy%20%23generator%20%20' target='_blank' rel='noopener noreferrer') Twitter,
- a(href='https://www.linkedin.com/shareArticle?mini=true&url=https://app-privacy-policy-generator.nisrulz.com/' target='_blank' rel='noopener noreferrer') Linkedin,
- a(href='https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fapp-privacy-policy-generator.nisrulz.com%2F' target='_blank' rel='noopener noreferrer') Facebook,
- a(href='https://reddit.com/submit?url=https://app-privacy-policy-generator.nisrulz.com/&title=%F0%9F%93%9D%20App%20Privacy%20Policy%20Generator' target='_blank' rel='noopener noreferrer') Reddit
- p ...or adding a review/comment in the project's
- a(href='https://github.com/nisrulz/app-privacy-policy-generator/issues/65' target='_blank' rel='noopener noreferrer') GuestBook 🤗
- .box.final-box
- b All Done!
- br
- p Now sit back and choose the type of document you want to generate:
- br
- a.button.is-primary(@click='togglePrivacyModalVisibility' rel='noopener noreferrer') Privacy Policy
- //- a.button.is-primary(@click='toggleGDPRPrivacyModalVisibility' rel='noopener noreferrer') GDPR compliant Privacy Policy
- a.button.is-info(@click='toggleTermsModalVisibility' rel='noopener noreferrer') Terms & Conditions
- br
- br
- p.has-text-grey-light
- | The accuracy of the generated privacy policy and terms & conditions on this website is not legally binding. Use at your own risk.
- p
- a.has-text-danger(@click='toggleDisclaimerModalVisibility' rel='noopener noreferrer') Read the full Disclaimer here
-
- //- Flycricket
- if (flycricket)
- include affliate/flycricket.pug
diff --git a/src/includes/content/wizard/step_1.pug b/src/includes/content/wizard/step_1.pug
new file mode 100644
index 0000000..357f0b5
--- /dev/null
+++ b/src/includes/content/wizard/step_1.pug
@@ -0,0 +1,29 @@
+section#step-1.columns.has-text-centered(v-if='wizardStep==1')
+ .column.is-three-fifths.is-offset-one-fifth
+ a.title(href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator' target='_blank' rel='noopener noreferrer')
+ p.is-size-1 App Privacy Policy Generator
+ img.center-block.hero-image(src='images/app_graphics/side_image.svg')
+ p.is-size-5.mt-2
+ | Generate a customized Privacy Policy and Terms of Use document for your mobile apps
+ p.mt-2
+ | Forever
+ a(href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator' target='_blank' rel='noopener noreferrer') free and open-source,
+ | built with
+ span.heart ♥️
+ | by
+ a(href='http://www.nisrulz.com/' target='_blank' rel='noopener noreferrer') Nishant
+ | and
+ a(href='https://github.com/nisrulz/app-privacy-policy-generator/graphs/contributors' target='_blank' rel='noopener noreferrer') contributors.
+ br
+ a(href='https://github.com/nisrulz/app-privacy-policy-generator/issues/65' target='_blank' rel='noopener noreferrer') ⭐️ Check out the Guestbook for reviews
+ p.mt-2
+ a(href='https://twitter.com/intent/tweet?text=%F0%9F%93%9D%20App%20Privacy%20Policy%20Generator%3A%20A%20free%20web-app%20to%20generate%20a%20generic%20privacy%20policy%20for%20your%20Android%2FiOS%2FKaiOS%20%F0%9F%93%B1%20apps%20%F0%9F%9A%80%20%7C%20Built%20by%20%40nisrulz%20%20%E2%9C%85%20Web%20App%3A%20https%3A%2F%2Fapp-privacy-policy-generator.nisrulz.com%20%E2%9C%85%20Checkout%20Reviews%3A%20https%3A%2F%2Fgithub.com%2Fnisrulz%2Fapp-privacy-policy-generator%2Fissues%2F65%20%F0%9F%91%A8%F0%9F%8F%BB%E2%80%8D%F0%9F%92%BB%20%23appg%20%23free%20%23app%20%23privacy%20%23policy%20%23generator%20%20' target='_blank' rel='noopener noreferrer')
+ img.social-logo(src='images/social_icons/twitter.svg' alt='Twitter')
+ a(@click='toggleDisclaimerModalVisibility' rel='noopener noreferrer')
+ img.social-logo(src='images/app_icons/disclaimer.svg' alt='Disclaimer')
+ a(href='https://github.com/nisrulz/app-privacy-policy-generator' target='_blank' rel='noopener noreferrer')
+ img(alt='GitHub stars' src='https://img.shields.io/github/stars/nisrulz/app-privacy-policy-generator?style=social')
+ a(href='https://ko-fi.com/A443EQ6', target='_blank')
+ img(style='border: 0px;height: 1.2em;margin-left: 6px', src='https://storage.ko-fi.com/cdn/kofi1.png?v=3', alt='Buy Me a Coffee at ko-fi.com')
+ hr
+ button.button.is-primary.start-btn(@click='nextStep') Start
diff --git a/src/includes/content/wizard/step_2.pug b/src/includes/content/wizard/step_2.pug
new file mode 100644
index 0000000..8800e3a
--- /dev/null
+++ b/src/includes/content/wizard/step_2.pug
@@ -0,0 +1,87 @@
+section#step-2.columns(v-if='wizardStep==2')
+ .column.card
+ .card-content
+ p
+ a(
+ href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator'
+ target='_blank'
+ rel='noopener noreferrer') App Privacy Policy Generator
+ progress.progress.is-small.is-link(value='16' max='100')
+ .scrollable.content
+ .control
+ | Type:
+ label.radio
+ input(
+ v-model="typeOfPolicyInt"
+ value="1"
+ type="radio"
+ )
+ | Simple
+ if noTracking
+ label.radio
+ input(
+ v-model="typeOfPolicyInt"
+ value="2"
+ type="radio"
+ )
+ | No Tracking
+ if gdpr
+ label.radio
+ input(
+ v-model="typeOfPolicyInt"
+ value="3"
+ type="radio"
+ )
+ | GDPR
+ br
+ .control
+ .field
+ label.label App Name
+ .control
+ input#appName.input(
+ v-bind:class="{ 'is-danger': (appName.length == 0) }"
+ placeholder="Awesome App Name"
+ v-model="appName"
+ required=""
+ type="text"
+ )
+ p.help(v-bind:class="{ 'is-danger': (appName.length == 0) }" v-show="(appName.length == 0)") Application Name is required.
+ br
+ .control
+ .field
+ label.label Contact Information
+ .control
+ input#appContact.input(
+ v-bind:class="{ 'is-danger': (appContact.length == 0) }"
+ placeholder="Email Address"
+ v-model="appContact"
+ required=""
+ type="email"
+ )
+ p.help(v-bind:class="{ 'is-danger': (appContact.length == 0) }" v-show="(appContact.length == 0)") Email address is required.
+ br
+ .control
+ .field
+ label.label Policy Effective Date
+ .control
+ input#effectiveFromDate.input.is-primary(
+ v-model="effectiveFromDate"
+ required=""
+ type="date"
+ )
+ br
+ .control(v-show="typeOfPolicyInt!=2")
+ .field
+ label.label Personally Identifiable Information
+ .control
+ input#pidInfoIn.input(
+ placeholder="Email, userId, age, gender, etc"
+ v-model="pidInfoIn"
+ type="text"
+ )
+ p.help.has-text-grey Personally Identifiable Information you collect (comma separated)
+ footer.card-footer
+ a.card-footer-item(@click='prevStep') Previous
+ a.card-footer-item(@click='nextStep') Next
+ .column.is-information.is-hidden-touch
+ img.center-block.sidebar-img(src='images/app_graphics/side_image.svg')
\ No newline at end of file
diff --git a/src/includes/content/wizard/step_3.pug b/src/includes/content/wizard/step_3.pug
new file mode 100644
index 0000000..07241e9
--- /dev/null
+++ b/src/includes/content/wizard/step_3.pug
@@ -0,0 +1,58 @@
+section#step-3.columns(v-if='wizardStep==3')
+ .column.card
+ .card-content
+ p
+ a(
+ href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator'
+ target='_blank'
+ rel='noopener noreferrer') App Privacy Policy Generator
+ progress.progress.is-small.is-link(value='32' max='100')
+ .scrollable.content
+ .control
+ | Select App Type:
+ span.tag.is-primary.is-light {{typeOfApp}}
+ br
+ label.radio
+ input(
+ v-model="typeOfApp"
+ value="Free"
+ type="radio"
+ )
+ | Free
+ br
+ label.radio
+ input(
+ v-model="typeOfApp"
+ value="Open Source"
+ type="radio"
+ )
+ | Open Source
+ br
+ label.radio
+ input(
+ v-model="typeOfApp"
+ value="Freemium"
+ type="radio"
+ )
+ | Freemium
+ br
+ label.radio
+ input(
+ v-model="typeOfApp"
+ value="Ad Supported"
+ type="radio"
+ )
+ | Ad Supported
+ br
+ label.radio
+ input(
+ v-model="typeOfApp"
+ value="Commercial"
+ type="radio"
+ )
+ | Commercial
+ footer.card-footer
+ a.card-footer-item(@click='prevStep') Previous
+ a.card-footer-item(@click='nextStep') Next
+ .column.is-information.is-hidden-touch
+ img.center-block.sidebar-img(src='images/app_graphics/side_image.svg')
\ No newline at end of file
diff --git a/src/includes/content/wizard/step_4.pug b/src/includes/content/wizard/step_4.pug
new file mode 100644
index 0000000..82c5a5c
--- /dev/null
+++ b/src/includes/content/wizard/step_4.pug
@@ -0,0 +1,58 @@
+section#step-4.columns(v-if="wizardStep==4")
+ .column.card
+ .card-content
+ p
+ a(
+ href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator'
+ target='_blank'
+ rel='noopener noreferrer') App Privacy Policy Generator
+ progress.progress.is-small.is-link(value='48' max='100')
+ .scrollable.content
+ .control
+ | Select Mobile OS:
+ span.tag.is-primary.is-light {{osType}}
+ br
+ label.radio
+ input(
+ v-model="osType"
+ value="Android"
+ type="radio"
+ )
+ | Android
+ br
+ label.radio
+ input(
+ v-model="osType"
+ value="iOS"
+ type="radio"
+ )
+ | iOS
+ br
+ label.radio
+ input(
+ v-model="osType"
+ value="KaiOS"
+ type="radio"
+ )
+ | KaiOS
+ br
+ label.radio
+ input(
+ v-model="osType"
+ value="Android & iOS"
+ type="radio"
+ )
+ | Android & iOS
+ br
+ label.radio
+ input(
+ v-model="osType"
+ value="Android, iOS & KaiOS"
+ type="radio"
+ )
+ | Android, iOS & KaiOS
+ footer.card-footer
+ a.card-footer-item(@click='prevStep') Previous
+ a.card-footer-item(@click='nextStep') Next
+ .column.is-information.is-hidden-touch
+ img.center-block.sidebar-img(src='images/app_graphics/side_image.svg')
\ No newline at end of file
diff --git a/src/includes/content/wizard/step_5.pug b/src/includes/content/wizard/step_5.pug
new file mode 100644
index 0000000..81450e5
--- /dev/null
+++ b/src/includes/content/wizard/step_5.pug
@@ -0,0 +1,53 @@
+section#step-5.columns(v-if="wizardStep==5")
+ .column.card
+ .card-content
+ p
+ a(
+ href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator'
+ target='_blank'
+ rel='noopener noreferrer') App Privacy Policy Generator
+ progress.progress.is-small.is-link(value='64' max='100')
+ .scrollable.content
+ .control
+ | Select owner type:
+ span.tag.is-primary.is-light {{typeOfDev}}
+ br
+ label.radio
+ input(
+ v-model="typeOfDev"
+ value="Individual"
+ type="radio"
+ )
+ | Individual
+ br
+ label.radio
+ input(
+ v-model="typeOfDev"
+ value="Company"
+ type="radio"
+ )
+ | Company
+ br
+ .control(v-if="typeOfDev=='Company'")
+ .field
+ label.label Company Name
+ .control
+ input#companyName.input.is-primary(
+ placeholder="Company Name"
+ v-model="companyName"
+ type="text"
+ )
+ .control(v-if="typeOfDev=='Individual'")
+ .field
+ label.label Developer Name
+ .control
+ input#devName.input.is-primary(
+ placeholder="Developer Name"
+ v-model="devName"
+ type="text"
+ )
+ footer.card-footer
+ a.card-footer-item(@click='prevStep') Previous
+ a.card-footer-item(@click='nextStep') Next
+ .column.is-information.is-hidden-touch
+ img.center-block.sidebar-img(src='images/app_graphics/side_image.svg')
\ No newline at end of file
diff --git a/src/includes/content/wizard/step_6.pug b/src/includes/content/wizard/step_6.pug
new file mode 100644
index 0000000..095399c
--- /dev/null
+++ b/src/includes/content/wizard/step_6.pug
@@ -0,0 +1,35 @@
+section#step-6.columns(v-if="wizardStep==6")
+ .column.card
+ .card-content
+ p
+ a(
+ href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator'
+ target='_blank'
+ rel='noopener noreferrer') App Privacy Policy Generator
+ progress.progress.is-small.is-link(value='80' max='100')
+ div(v-show='typeOfPolicyInt!=2')
+ p
+ b Include links to Third Party Services
+ span.tag.is-primary.is-light Scroll for more
+ .scrollable-thirdparty.content
+ a(rel="noopener noreferrer" v-for="item in thirdPartyServices")
+ input(
+ v-model="item[item.model]"
+ :id="'list-switch-' + item.model"
+ type="checkbox"
+ )
+ label(:for="'list-switch-' + item.model")
+ img.thirdparty-logo(
+ :alt="item.name"
+ :src="item.logo"
+ )
+ span.thirdparty-text {{ item.name }}
+ div(v-show='typeOfPolicyInt==2')
+ p No third party services to choose. Goto
+ b Next step.
+ div.scrollable-thirdparty.content
+ footer.card-footer
+ a.card-footer-item(@click='prevStep') Previous
+ a.card-footer-item(@click='nextStep') Next
+ .column.is-information.is-hidden-touch
+ img.center-block.sidebar-img(src='images/app_graphics/side_image.svg')
\ No newline at end of file
diff --git a/src/includes/content/wizard/step_7.pug b/src/includes/content/wizard/step_7.pug
new file mode 100644
index 0000000..fd10762
--- /dev/null
+++ b/src/includes/content/wizard/step_7.pug
@@ -0,0 +1,83 @@
+section#step-7.columns(v-if="wizardStep==7")
+ .column.card
+ .card-content
+ p
+ a(
+ href='https://github.com/nisrulz/app-privacy-policy-generator#app-privacy-policy-generator'
+ target='_blank'
+ rel='noopener noreferrer') App Privacy Policy Generator
+ progress.progress.is-small.is-primary(value='100' max='100')
+ .scrollable.content
+ .notification.is-warning
+ p While App Privacy Policy Generator is completely FREE
+ | , it takes money to keep it running and updated.
+ | If you are able to, then consider contributing by:
+ ol
+ li
+ a(
+ rel="noopener noreferrer"
+ target="_blank"
+ href="https://github.com/sponsors/nisrulz"
+ ) Sponsoring me on Github 👨🏻💻
+ li
+ a(
+ rel="noopener noreferrer"
+ target="_blank"
+ href="https://ko-fi.com/nisrulz"
+ ) Buying me a cup of ☕
+ p
+ p If you are unable to contribute with funds, consider sharing it with your friends:
+ a(
+ rel="noopener noreferrer"
+ target="_blank"
+ href="https://twitter.com/intent/tweet?text=%F0%9F%93%9D%20App%20Privacy%20Policy%20Generator%3A%20A%20free%20web-app%20to%20generate%20a%20generic%20privacy%20policy%20for%20your%20Android%2FiOS%2FKaiOS%20%F0%9F%93%B1%20apps%20%F0%9F%9A%80%20%7C%20Built%20by%20%40nisrulz%20%20%E2%9C%85%20Web%20App%3A%20https%3A%2F%2Fapp-privacy-policy-generator.nisrulz.com%20%E2%9C%85%20Checkout%20Reviews%3A%20https%3A%2F%2Fgithub.com%2Fnisrulz%2Fapp-privacy-policy-generator%2Fissues%2F65%20%F0%9F%91%A8%F0%9F%8F%BB%E2%80%8D%F0%9F%92%BB%20%23appg%20%23free%20%23app%20%23privacy%20%23policy%20%23generator%20%20"
+ ) Twitter,
+ a(
+ rel="noopener noreferrer"
+ target="_blank"
+ href="https://www.linkedin.com/shareArticle?mini=true&url=https://app-privacy-policy-generator.nisrulz.com/"
+ ) Linkedin,
+ a(
+ rel="noopener noreferrer"
+ target="_blank"
+ href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fapp-privacy-policy-generator.nisrulz.com%2F"
+ ) Facebook,
+ a(
+ rel="noopener noreferrer"
+ target="_blank"
+ href="https://reddit.com/submit?url=https://app-privacy-policy-generator.nisrulz.com/&title=%F0%9F%93%9D%20App%20Privacy%20Policy%20Generator"
+ ) Reddit
+ p ...or adding a review/comment in the project's
+ a(
+ rel="noopener noreferrer"
+ target="_blank"
+ href="https://github.com/nisrulz/app-privacy-policy-generator/issues/65"
+ ) GuestBook 🤗
+ p Now sit back and choose the type of document you want to generate.
+ br
+ p.has-text-grey-light
+ | The accuracy of the generated privacy policy and terms & conditions on this website is not legally binding. Use at your own risk.
+ p
+ a.has-text-danger(
+ rel="noopener noreferrer"
+ @click="toggleDisclaimerModalVisibility"
+ ) Read the full Disclaimer here
+ footer.card-footer
+ a.card-footer-item(@click='prevStep') Previous
+ a.card-footer-item(@click='togglePrivacyModalVisibility'
+ rel="noopener noreferrer"
+ v-if="typeOfPolicyInt==1"
+ ) Privacy Policy
+ if noTracking
+ a.card-footer-item(@click='toggleNoTrackingPrivacyPolicyModalVisibility'
+ rel="noopener noreferrer"
+ v-if="typeOfPolicyInt==2"
+ ) Privacy Policy
+ if gdpr
+ a.card-footer-item(@click='toggleGDPRPrivacyModalVisibility'
+ rel="noopener noreferrer"
+ v-if="typeOfPolicyInt==3"
+ ) Privacy Policy
+ a.card-footer-item(@click='toggleTermsModalVisibility' rel="noopener noreferrer") Terms & Conditions
+ .column.is-information.is-hidden-touch
+ img.center-block.sidebar-img(src='images/app_graphics/side_image.svg')
diff --git a/src/includes/css.pug b/src/includes/css.pug
index 29d03a6..dbdd1d7 100644
--- a/src/includes/css.pug
+++ b/src/includes/css.pug
@@ -1,3 +1,3 @@
link(rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.1/normalize.min.css')
-link(rel='stylesheet prefetch' href='https://cdnjs.cloudflare.com/ajax/libs/bulma/0.8.0/css/bulma.css')
-link(rel='stylesheet' href='css/style.css')
\ No newline at end of file
+link(rel='stylesheet prefetch' href='https://cdn.jsdelivr.net/npm/bulma@0.9.4/css/bulma.min.css')
+link(rel='stylesheet' href='css/style.min.css')
\ No newline at end of file
diff --git a/src/includes/footer.pug b/src/includes/footer.pug
index 4524ef1..253cf34 100644
--- a/src/includes/footer.pug
+++ b/src/includes/footer.pug
@@ -1,18 +1,18 @@
//- Footer
//- VueJS
-script(src='https://cdn.jsdelivr.net/npm/vue@2.6.12')
+script(src='https://cdn.jsdelivr.net/npm/vue@2.7.16')
//- to-markdown
script(src='https://cdnjs.cloudflare.com/ajax/libs/to-markdown/3.1.1/to-markdown.min.js' integrity='sha256-2PIa0cHy6lNEesnk4/qokv291Whx/uhAy2V6WL2zmfo=' crossorigin='anonymous')
//- Application specific
-script(src='js/thirdpartyservices.js')
-script(src='js/utils.js')
-script(src='js/main.js')
+script(src='js/thirdpartyservices.min.js')
+script(src='js/utils.min.js')
+script(src='js/main.min.js')
//- Affliates
//- Flycricket
if (flycricket)
- script(src='js/flycricket.js')
+ script(src='js/flycricket.min.js')
diff --git a/src/includes/meta_info.pug b/src/includes/meta_info.pug
index 0da726f..5987f9b 100644
--- a/src/includes/meta_info.pug
+++ b/src/includes/meta_info.pug
@@ -1,19 +1,14 @@
meta(charset='utf-8')
meta(http-equiv='X-UA-Compatible' content='IE=edge')
meta(name='description' content='A simple web app to generate a generic privacy policy for your Android/iOS apps')
-meta(name='viewport' content='width=device-width, initial-scale=1.0, minimum-scale=1.0')
+meta(name='viewport' content='width=device-width, initial-scale=1')
meta(name='copyright' content='Nishant Srivastava')
meta(name='author' content='Nishant Srivastava, nisrulz@gmail.com')
-
-// Add to homescreen for Chrome on Android
meta(name='mobile-web-app-capable' content='yes')
-link(rel='icon' sizes='192x192' href='images/android-desktop.png')
-
-// Add to homescreen for Safari on iOS
meta(name='apple-mobile-web-app-capable' content='yes')
-meta(name='apple-mobile-web-app-status-bar-style' content='black')
-meta(name='apple-mobile-web-app-title' content='App Privacy Policy Generator')
-// Tile icon for Win8 (144x144 + tile color)
-meta(name='msapplication-TileColor' content='#3372DF')
-link(rel='shortcut icon' href='images/favicon.ico')
\ No newline at end of file
+//- Favicon
+link(rel='apple-touch-icon', sizes='180x180', href='apple-touch-icon.png')
+link(rel='icon', type='image/png', sizes='32x32', href='favicon-32x32.png')
+link(rel='icon', type='image/png', sizes='16x16', href='favicon-16x16.png')
+link(rel='manifest', href='site.webmanifest')
\ No newline at end of file
diff --git a/src/index.pug b/src/index.pug
index 9e1eac8..d2b24a3 100644
--- a/src/index.pug
+++ b/src/index.pug
@@ -1,13 +1,13 @@
doctype html
html(lang="en")
- //- Enable/Disable Affliates
- var flycricket = true
+ - var noTracking = true
+ - var gdpr = true
//- Application code
head
include includes/head.pug
body.bg-pattern
- #app
- .container
- include includes/content.pug
+ #app.container.m-6
+ include includes/content.pug
include includes/footer.pug
\ No newline at end of file
diff --git a/src/js/flycricket.js b/src/js/flycricket.js
new file mode 100644
index 0000000..5f54b38
--- /dev/null
+++ b/src/js/flycricket.js
@@ -0,0 +1,29 @@
+function fc_deploy_simple() {
+ var form = document.getElementById("fc-form");
+
+ // fill in the body with the html content
+ document.getElementById('fc-body').value = getContent('privacy_simple_content')
+ document.getElementById('fc-terms').value = getContent('tandc_content')
+
+ form.submit();
+}
+
+function fc_deploy_notracking() {
+ var form = document.getElementById("fc-form");
+
+ // fill in the body with the html content
+ document.getElementById('fc-body').value = getContent('privacy_notrack_content')
+ document.getElementById('fc-terms').value = getContent('tandc_content')
+
+ form.submit();
+}
+
+function fc_deploy_gdpr() {
+ var form = document.getElementById("fc-form");
+
+ // fill in the body with the html content
+ document.getElementById('fc-body').value = getContent('privacy_gdpr_content')
+ document.getElementById('fc-terms').value = getContent('tandc_content')
+
+ form.submit();
+}
\ No newline at end of file
diff --git a/src/js/main.js b/src/js/main.js
new file mode 100755
index 0000000..2194cb3
--- /dev/null
+++ b/src/js/main.js
@@ -0,0 +1,196 @@
+/*
+ App Privacy Policy Generator: A simple web app to generate a generic
+ privacy policy for your Android/iOS apps
+
+ Copyright 2017-Present Nishant Srivastava
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+ */
+
+var app = new Vue({
+ el: "#app",
+ data: {
+ iOrWe: "[I/We]",
+ typeOfApp: "Free",
+ typeOfAppTxt: "[open source/free/freemium/ad-supported/commercial]",
+ typeOfDev: "Individual",
+ appName: "",
+ appContact: "",
+ devName: "",
+ companyName: "",
+ devOrCompanyName: "[Developer/Company name]",
+ pidInfoIn: "",
+ pidInfo:
+ "[add whatever else you collect here, e.g. users name, address, location, pictures]",
+ osType: "Android",
+ effectiveFromDate: new Date().toISOString().slice(0, 10),
+ requirementOfSystem: "system",
+ thirdPartyServices: thirdPartyServicesJsonArray,
+ showPrivacyModal: false,
+ showGDPRPrivacyModal: false,
+ showTermsModal: false,
+ showDisclaimerModal: false,
+ showNoTrackingPrivacyPolicyModal: false,
+ hasThirdPartyServicesSelected: true,
+ contentRenderType: 1, // contentRenderType=1 is Preview, contentRenderType=2 is HTML/Markdown
+ wizardStep: 1,
+ totalWizardSteps: 7,
+ typeOfPolicy: 'Simple',
+ typeOfPolicyInt: 1,
+ },
+ filters: {
+ capitalize: function (value) {
+ if (!value) return ''
+ value = value.toString()
+ return value.charAt(0).toUpperCase() + value.slice(1)
+ }
+ },
+ methods: {
+ showPrivacyModal: function () {
+ this.showPrivacyModal = true
+ },
+ showNoTrackingPrivacyPolicyModal: function () {
+ this.showNoTrackingPrivacyPolicyModal = true
+ },
+ showGDPRPrivacyModal: function () {
+ this.showGDPRPrivacyModal = true
+ },
+ preview: function (id) {
+ this.contentRenderType = 1
+ },
+
+ setTypeOfPolicyInt: function () {
+ switch (this.typeOfPolicy) {
+ case "Simple":
+ this.typeOfPolicyInt = 1
+ break
+ case "No Tracking":
+ this.typeOfPolicyInt = 2
+ break
+ case "GDPR":
+ this.typeOfPolicyInt = 3
+ break
+ }
+ },
+ nextStep: function () {
+ this.wizardStep += 1
+ },
+ prevStep: function () {
+ this.wizardStep -= 1
+ },
+ checkForThirdPartyServicesEnabled: function () {
+ let listOfEnabledThirdPartyServices = []
+ this.thirdPartyServices.forEach((item) => {
+ if (item[item.model] == true) {
+ listOfEnabledThirdPartyServices.push(true)
+ }
+ })
+
+ return listOfEnabledThirdPartyServices.length > 0
+ },
+ toggleState: function (item) {
+ let state = item.model
+
+ // For reactive update of the json
+ // Toggle the state
+ Vue.set(thirdPartyServicesJsonArray, item.model, !item[state])
+ },
+ getHtml: function (id, target) {
+ let content = getContent(id)
+ let title = getTitle(id)
+ let rawHTML = getRawHTML(content, title)
+ this.contentRenderType = 2
+ loadInTextView(target, rawHTML)
+ },
+ getMarkdown: function (id, target) {
+ let content = getContent(id)
+ let title = getTitle(id)
+ let rawHTML = getRawHTML(content, title)
+ let markdown = convertHtmlToMd(rawHTML)
+ this.contentRenderType = 2
+ loadInTextView(target, markdown)
+ },
+ generate: function () {
+ // Dev/Company Name
+ if (this.typeOfDev === "Individual") {
+ this.devOrCompanyName = this.devName
+ } else if (this.typeOfDev === "Company") {
+ this.devOrCompanyName = this.companyName
+ }
+
+ // PID Info
+ if (this.pidInfoIn === "") {
+ this.pidInfo = "."
+ } else {
+ this.pidInfo = ", including but not limited to " + this.pidInfoIn + "."
+ }
+
+ switch (this.typeOfApp) {
+ case "Free":
+ case "Freemium":
+ case "Commercial":
+ this.typeOfAppTxt = "a " + this.typeOfApp
+ break
+ case "Open Source":
+ case "Ad Supported":
+ this.typeOfAppTxt = "an " + this.typeOfApp
+ break
+ }
+
+ switch (this.osType) {
+ case "Android": {
+ this.osType = "Android"
+ this.requirementOfSystem = "system"
+ break
+ }
+ case "iOS": {
+ this.osType = "iOS"
+ this.requirementOfSystem = "system"
+ break
+ }
+ case "Android & iOS": {
+ this.osType = "Android & iOS"
+ this.requirementOfSystem = "both systems"
+ break
+ }
+ }
+ },
+ toggleNoTrackingPrivacyPolicyModalVisibility: function () {
+ this.generate()
+ this.contentRenderType == 1
+ this.showNoTrackingPrivacyPolicyModal = !this.showNoTrackingPrivacyPolicyModal
+ },
+ togglePrivacyModalVisibility: function () {
+ this.generate()
+ this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled()
+ this.contentRenderType = 1
+ this.showPrivacyModal = !this.showPrivacyModal
+ },
+ toggleGDPRPrivacyModalVisibility: function () {
+ this.generate()
+ this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled()
+ this.contentRenderType = 1
+ this.showGDPRPrivacyModal = !this.showGDPRPrivacyModal
+ },
+ toggleTermsModalVisibility: function () {
+ this.generate()
+ this.hasThirdPartyServicesSelected = this.checkForThirdPartyServicesEnabled()
+ this.contentRenderType = 1
+ this.showTermsModal = !this.showTermsModal
+ },
+ toggleDisclaimerModalVisibility: function () {
+ this.showDisclaimerModal = !this.showDisclaimerModal
+ },
+ },
+})
diff --git a/public/js/thirdpartyservices.js b/src/js/thirdpartyservices.js
similarity index 98%
rename from public/js/thirdpartyservices.js
rename to src/js/thirdpartyservices.js
index f0e299a..caf4e96 100755
--- a/public/js/thirdpartyservices.js
+++ b/src/js/thirdpartyservices.js
@@ -45,8 +45,8 @@ var thirdPartyServicesJsonArray = [
"firebase": false,
"logo": "images/third_party_logos/firebase.png",
"link": {
- "privacy": "https://firebase.google.com/policies/analytics",
- "terms": "https://firebase.google.com/terms/analytics"
+ "privacy": "https://firebase.google.com/support/privacy",
+ "terms": "https://www.google.com/analytics/terms/"
}
},
{
diff --git a/public/js/utils.js b/src/js/utils.js
similarity index 100%
rename from public/js/utils.js
rename to src/js/utils.js
diff --git a/src/sass/app.sass b/src/sass/app.sass
index ac30516..9aa6a8d 100644
--- a/src/sass/app.sass
+++ b/src/sass/app.sass
@@ -61,6 +61,11 @@ img.social-logo
.menu-list li a:hover
background: #d9d9d9
+.notification a:not(.button):not(.dropdown-item)
+ text-decoration: none
+ font-weight: bolder
+ color: mediumvioletred
+
.token.number
display: inline
padding: inherit
@@ -74,10 +79,31 @@ img.social-logo
background: inherit
margin: inherit
+#effectiveFromDate
+ display: block
+
+.card-content p:first-child
+ margin-bottom: 1em
+ font-size: 1.1em
+ font-style: italic
+ font-weight: bolder
+
+.card-content p:first-child a
+ color: #c5c5c5
+
+.heart
+ color: red
+
.scrollable
- height: 65vh
+ height: 62vh
+ display: flex
+ overflow-y: scroll
+ flex-direction: column
+
+.scrollable-thirdparty
+ height: 59vh
display: flex
- overflow-y: auto
+ overflow-y: scroll
flex-direction: column
.heart-logo
@@ -92,10 +118,6 @@ img.social-logo
padding-right: 8px
vertical-align: middle
-#step-1, #step-2, #step-3
- padding-bottom: 0.3em
- padding-top: 0.4em
-
.column.box
padding: 1em
@@ -105,12 +127,12 @@ img.social-logo
vertical-align: middle
margin: 2em auto
- color: #888
- display: table
- font-family: sans-serif
- height: 100%
- text-align: center
- width: 100%
+ color: #888
+ display: table
+ font-family: sans-serif
+ height: 100%
+ text-align: center
+ width: 100%
h1
color: white
@@ -145,6 +167,13 @@ img.social-logo
display: inline-block
margin: 2px
+.hero-image
+ height: 50vh
+
+.start-btn
+ padding-left: 5em
+ padding-right: 5em
+
.column.is-information
.nav-btn
cursor: grab
@@ -153,8 +182,8 @@ img.social-logo
.sidebar-img
pointer-events: none
- height: 21em
- padding: 2em
+ height: 65vh
+ margin-top: 12vh
.subtitle p
font-size: 0.7em
@@ -171,4 +200,4 @@ img.social-logo
margin-right: 0.2em
.no-select
- user-select: none
\ No newline at end of file
+ user-select: none