Skip to content

Commit

Permalink
Merge branch 'main' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
ale24dev committed Oct 8, 2024
2 parents 07c971a + ab00682 commit ab40202
Show file tree
Hide file tree
Showing 4 changed files with 137 additions and 185 deletions.
183 changes: 22 additions & 161 deletions README.md
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.

Check warning on line 3 in README.md

View workflow job for this annotation

GitHub Actions / spell-check / build

Unknown word (Hackathon)

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

View workflow job for this annotation

GitHub Actions / spell-check / build

Unknown word (Leaderboard)

Check warning on line 20 in README.md

View workflow job for this annotation

GitHub Actions / spell-check / build

Unknown word (leaderboard)
- **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
104 changes: 104 additions & 0 deletions index.html
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>
29 changes: 8 additions & 21 deletions pubspec.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ packages:
dependency: transitive
description:
name: _fe_analyzer_shared
sha256: f256b0c0ba6c7577c15e2e4e114755640a875e885099367bf6e012b19314c834
sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
url: "https://pub.dev"
source: hosted
version: "72.0.0"
version: "67.0.0"
_flutterfire_internals:
dependency: transitive
description:
Expand All @@ -17,19 +17,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "1.3.44"
_macros:
dependency: transitive
description: dart
source: sdk
version: "0.3.2"
analyzer:
dependency: transitive
description:
name: analyzer
sha256: b652861553cd3990d8ed361f7979dc6d7053a9ac8843fa73820ab68ce5410139
sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
url: "https://pub.dev"
source: hosted
version: "6.7.0"
version: "6.4.1"
ansicolor:
dependency: transitive
description:
Expand Down Expand Up @@ -282,10 +277,10 @@ packages:
dependency: transitive
description:
name: dart_style
sha256: "7856d364b589d1f08986e140938578ed36ed948581fbc3bc9aef1805039ac5ab"
sha256: "99e066ce75c89d6b29903d788a7bb9369cf754f7b24bf70bf4b6d6d6b26853b9"
url: "https://pub.dev"
source: hosted
version: "2.3.7"
version: "2.3.6"
diff_match_patch:
dependency: transitive
description:
Expand Down Expand Up @@ -470,10 +465,10 @@ packages:
dependency: "direct dev"
description:
name: freezed
sha256: "44c19278dd9d89292cf46e97dc0c1e52ce03275f40a97c5a348e802a924bf40e"
sha256: a434911f643466d78462625df76fd9eb13e57348ff43fe1f77bbe909522c67a1
url: "https://pub.dev"
source: hosted
version: "2.5.7"
version: "2.5.2"
freezed_annotation:
dependency: "direct main"
description:
Expand Down Expand Up @@ -690,14 +685,6 @@ packages:
url: "https://pub.dev"
source: hosted
version: "3.1.2"
macros:
dependency: transitive
description:
name: macros
sha256: "0acaed5d6b7eab89f63350bccd82119e6c602df0f391260d0e32b5e23db79536"
url: "https://pub.dev"
source: hosted
version: "0.1.2-main.4"
matcher:
dependency: transitive
description:
Expand Down
Loading

0 comments on commit ab40202

Please sign in to comment.