-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
137 additions
and
185 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,176 +1,37 @@ | ||
# My App | ||
# MindCows | ||
|
||
![coverage][coverage_badge] | ||
[![style: very good analysis][very_good_analysis_badge]][very_good_analysis_link] | ||
[![License: MIT][license_badge]][license_link] | ||
Welcome to **MindCows**, a fun and interactive game developed for the [Supabase Hackathon Launch Week 12, 2024](https://supabase.com/blog/supabase-lw12-hackathon). This project was built using **Flutter** and **Supabase** and is fully open-source. | ||
|
||
Generated by the [Very Good CLI][very_good_cli_link] 🤖 | ||
# Screenshots | ||
![Screenshot 2024-10-08 at 3 26 00 AM](https://github.com/user-attachments/assets/4f50f436-99c4-4994-81b4-28b0f300f455) | ||
|
||
My new flutter app | ||
![Screenshot 2024-10-08 at 3 24 24 AM](https://github.com/user-attachments/assets/b558ae35-615b-4f36-9cd0-55ab83f6078c) | ||
|
||
--- | ||
|
||
## Getting Started 🚀 | ||
## Overview | ||
|
||
This project contains 3 flavors: | ||
**MindCows** is an engaging multiplayer puzzle game where players challenge their cognitive skills by guessing the exact numbers in each position of their opponents' boards. The game leverages **Supabase** for real-time multiplayer capabilities, data storage, and authentication, while **Flutter** provides a seamless cross-platform user experience. | ||
|
||
- development | ||
- staging | ||
- production | ||
## Features | ||
|
||
To run the desired flavor either use the launch configuration in VSCode/Android Studio or use the following commands: | ||
- **Cross-Platform**: Available on both iOS and Android, providing a consistent experience across devices. | ||
- **Real-Time Multiplayer Support**: Play with friends and other players in real-time, enabled by Supabase’s real-time API. | ||
- **User Authentication**: Secure login and profile management powered by Supabase Auth, ensuring player safety. | ||
- **Global Leaderboard**: Compete with others and track your ranking on the leaderboard. | ||
Check warning on line 20 in README.md GitHub Actions / spell-check / build
|
||
- **Data Storage**: Game progress and player stats are securely stored using Supabase's PostgreSQL database. | ||
- **Scalable Architecture**: Built to scale seamlessly to billions of users using Supabase’s robust infrastructure. | ||
|
||
```sh | ||
# Development | ||
$ flutter run --flavor development --target lib/main_development.dart | ||
## Installation | ||
|
||
# Staging | ||
$ flutter run --flavor staging --target lib/main_staging.dart | ||
- Clone the repository: | ||
``` | ||
git clone https://github.com/your-username/MindCows.git | ||
``` | ||
|
||
# Production | ||
$ flutter run --flavor production --target lib/main_production.dart | ||
``` | ||
## Contributing | ||
|
||
_\*My App works on iOS, Android, Web, and Windows._ | ||
Contributions are welcome! Please feel free to submit a pull request or open an issue. | ||
|
||
--- | ||
Thank you for checking out MindCows! We hope you enjoy playing and exploring the game. | ||
|
||
## Running Tests 🧪 | ||
|
||
To run all unit and widget tests use the following command: | ||
|
||
```sh | ||
$ flutter test --coverage --test-randomize-ordering-seed random | ||
``` | ||
|
||
To view the generated coverage report you can use [lcov](https://github.com/linux-test-project/lcov). | ||
|
||
```sh | ||
# Generate Coverage Report | ||
$ genhtml coverage/lcov.info -o coverage/ | ||
|
||
# Open Coverage Report | ||
$ open coverage/index.html | ||
``` | ||
|
||
--- | ||
|
||
## Working with Translations 🌐 | ||
|
||
This project relies on [flutter_localizations][flutter_localizations_link] and follows the [official internationalization guide for Flutter][internationalization_link]. | ||
|
||
### Adding Strings | ||
|
||
1. To add a new localizable string, open the `app_en.arb` file at `lib/l10n/arb/app_en.arb`. | ||
|
||
```arb | ||
{ | ||
"@@locale": "en", | ||
"counterAppBarTitle": "Counter", | ||
"@counterAppBarTitle": { | ||
"description": "Text shown in the AppBar of the Counter Page" | ||
} | ||
} | ||
``` | ||
|
||
2. Then add a new key/value and description | ||
|
||
```arb | ||
{ | ||
"@@locale": "en", | ||
"counterAppBarTitle": "Counter", | ||
"@counterAppBarTitle": { | ||
"description": "Text shown in the AppBar of the Counter Page" | ||
}, | ||
"helloWorld": "Hello World", | ||
"@helloWorld": { | ||
"description": "Hello World Text" | ||
} | ||
} | ||
``` | ||
|
||
3. Use the new string | ||
|
||
```dart | ||
import 'package:my_app/l10n/l10n.dart'; | ||
@override | ||
Widget build(BuildContext context) { | ||
final l10n = context.l10n; | ||
return Text(l10n.helloWorld); | ||
} | ||
``` | ||
|
||
### Adding Supported Locales | ||
|
||
Update the `CFBundleLocalizations` array in the `Info.plist` at `ios/Runner/Info.plist` to include the new locale. | ||
|
||
```xml | ||
... | ||
|
||
<key>CFBundleLocalizations</key> | ||
<array> | ||
<string>en</string> | ||
<string>es</string> | ||
</array> | ||
|
||
... | ||
``` | ||
|
||
### Adding Translations | ||
|
||
1. For each supported locale, add a new ARB file in `lib/l10n/arb`. | ||
|
||
``` | ||
├── l10n | ||
│ ├── arb | ||
│ │ ├── app_en.arb | ||
│ │ └── app_es.arb | ||
``` | ||
|
||
2. Add the translated strings to each `.arb` file: | ||
|
||
`app_en.arb` | ||
|
||
```arb | ||
{ | ||
"@@locale": "en", | ||
"counterAppBarTitle": "Counter", | ||
"@counterAppBarTitle": { | ||
"description": "Text shown in the AppBar of the Counter Page" | ||
} | ||
} | ||
``` | ||
|
||
`app_es.arb` | ||
|
||
```arb | ||
{ | ||
"@@locale": "es", | ||
"counterAppBarTitle": "Contador", | ||
"@counterAppBarTitle": { | ||
"description": "Texto mostrado en la AppBar de la página del contador" | ||
} | ||
} | ||
``` | ||
|
||
### Generating Translations | ||
|
||
To use the latest translations changes, you will need to generate them: | ||
|
||
1. Generate localizations for the current project: | ||
|
||
```sh | ||
flutter gen-l10n --arb-dir="lib/l10n/arb" | ||
``` | ||
|
||
Alternatively, run `flutter run` and code generation will take place automatically. | ||
|
||
[coverage_badge]: coverage_badge.svg | ||
[flutter_localizations_link]: https://api.flutter.dev/flutter/flutter_localizations/flutter_localizations-library.html | ||
[internationalization_link]: https://flutter.dev/docs/development/accessibility-and-localization/internationalization | ||
[license_badge]: https://img.shields.io/badge/license-MIT-blue.svg | ||
[license_link]: https://opensource.org/licenses/MIT | ||
[very_good_analysis_badge]: https://img.shields.io/badge/style-very_good_analysis-B22C89.svg | ||
[very_good_analysis_link]: https://pub.dev/packages/very_good_analysis | ||
[very_good_cli_link]: https://github.com/VeryGoodOpenSource/very_good_cli |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
<!DOCTYPE html> | ||
<html lang="en"> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
<meta http-equiv="X-UA-Compatible" content="ie=edge"> | ||
<title>Privacy Policy - MindCows</title> | ||
<style> | ||
body { | ||
font-family: Arial, sans-serif; | ||
line-height: 1.6; | ||
margin: 0; | ||
padding: 20px; | ||
background-color: #f4f4f4; | ||
} | ||
h1, h2, h3 { | ||
color: #333; | ||
} | ||
p { | ||
color: #555; | ||
} | ||
.container { | ||
max-width: 800px; | ||
margin: auto; | ||
background: #fff; | ||
padding: 20px; | ||
border-radius: 8px; | ||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); | ||
} | ||
a { | ||
color: #0066cc; | ||
text-decoration: none; | ||
} | ||
a:hover { | ||
text-decoration: underline; | ||
} | ||
</style> | ||
</head> | ||
<body> | ||
|
||
<div class="container"> | ||
<h1>Privacy Policy</h1> | ||
<p><strong>Effective Date:</strong> 24/08/2024</p> | ||
|
||
<p>Welcome to <strong>MindCows</strong>! Your privacy is important to us. This Privacy Policy outlines how we collect, use, and protect your personal information when you use our app.</p> | ||
|
||
<h2>Information We Collect</h2> | ||
<p>We collect the following types of information when you use <strong>MindCows</strong>:</p> | ||
|
||
<h3>1. Personal Information</h3> | ||
<ul> | ||
<li><strong>Account Information</strong>: When you sign up, we collect your email address, username, and other information necessary for account creation using <strong>Supabase Auth</strong>.</li> | ||
<li><strong>Profile Data</strong>: We may collect information you provide for your user profile, such as a profile picture or display name.</li> | ||
</ul> | ||
|
||
<h3>2. Usage Information</h3> | ||
<ul> | ||
<li><strong>Gameplay Data</strong>: Information about your interactions with the app, including game progress, rankings, and performance metrics.</li> | ||
</ul> | ||
|
||
<h3>3. Real-Time Data</h3> | ||
<ul> | ||
<li><strong>Multiplayer Game Sessions</strong>: We collect and process real-time data related to your interactions with other players, including game status, turn changes, and results.</li> | ||
</ul> | ||
|
||
<h2>How We Use Your Information</h2> | ||
<p>We use the information we collect to:</p> | ||
<ul> | ||
<li>Provide and improve our game functionality and user experience.</li> | ||
<li>Authenticate and secure your account through <strong>Supabase Auth</strong>.</li> | ||
<li>Enable real-time multiplayer gameplay using <strong>Supabase Realtime</strong>.</li> | ||
<li>Update leaderboards and track player progress.</li> | ||
<li>Communicate with you, such as sending notifications or updates about the game.</li> | ||
</ul> | ||
|
||
<h2>Sharing of Information</h2> | ||
<p>We do not share or sell your personal information to third parties except in the following situations:</p> | ||
<ul> | ||
<li><strong>Service Providers</strong>: We may share data with trusted third-party providers who assist us in operating the app (e.g., Supabase for hosting and database services).</li> | ||
<li><strong>Legal Compliance</strong>: We may disclose information if required by law or to protect the rights, safety, and property of <strong>MindCows</strong> and its users.</li> | ||
</ul> | ||
|
||
<h2>Data Security</h2> | ||
<p>We take the security of your personal information seriously and implement reasonable safeguards to protect it. However, please note that no method of transmission over the internet or method of electronic storage is completely secure.</p> | ||
|
||
<h2>User Rights</h2> | ||
<p>You have the right to:</p> | ||
<ul> | ||
<li>Access and update your account information.</li> | ||
<li>Request the deletion of your account and personal data.</li> | ||
<li>Opt-out of certain communications (e.g., marketing emails).</li> | ||
</ul> | ||
<p>If you want to exercise any of these rights, please contact us at ale.24dev@gmail.com</p> | ||
|
||
<h2>Changes to This Privacy Policy</h2> | ||
<p>We may update this Privacy Policy from time to time. We will notify you of any changes by updating the "Effective Date" at the top of this document. Please review this Privacy Policy periodically for any updates.</p> | ||
|
||
<h2>Contact Us</h2> | ||
<p>If you have any questions or concerns about this Privacy Policy, please contact us at:</p> | ||
<p><strong>Email</strong>: ale.24dev@gmail.com</p> | ||
</div> | ||
|
||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.