Skip to content

Commit 78f0876

Browse files
committed
Initial project setup for Auto Cloud Backup
Add Flutter app source files, platform-specific configuration and assets for Android, iOS, macOS, Linux, Windows, and web. Includes .gitignore, README, analysis options, environment setup, and core Dart code for media backup to Telegram cloud.
1 parent f401a2f commit 78f0876

File tree

149 files changed

+6573
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

149 files changed

+6573
-1
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
.buildlog/
88
.history
99

10-
10+
.env
11+
build/
1112

1213
# Flutter repo-specific
1314
/bin/cache/

.metadata

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: "9f455d2486bcb28cad87b062475f42edc959f636"
8+
channel: "stable"
9+
10+
project_type: app
11+
12+
# Tracks metadata for the flutter migrate command
13+
migration:
14+
platforms:
15+
- platform: root
16+
create_revision: 9f455d2486bcb28cad87b062475f42edc959f636
17+
base_revision: 9f455d2486bcb28cad87b062475f42edc959f636
18+
- platform: android
19+
create_revision: 9f455d2486bcb28cad87b062475f42edc959f636
20+
base_revision: 9f455d2486bcb28cad87b062475f42edc959f636
21+
- platform: ios
22+
create_revision: 9f455d2486bcb28cad87b062475f42edc959f636
23+
base_revision: 9f455d2486bcb28cad87b062475f42edc959f636
24+
- platform: linux
25+
create_revision: 9f455d2486bcb28cad87b062475f42edc959f636
26+
base_revision: 9f455d2486bcb28cad87b062475f42edc959f636
27+
- platform: macos
28+
create_revision: 9f455d2486bcb28cad87b062475f42edc959f636
29+
base_revision: 9f455d2486bcb28cad87b062475f42edc959f636
30+
- platform: web
31+
create_revision: 9f455d2486bcb28cad87b062475f42edc959f636
32+
base_revision: 9f455d2486bcb28cad87b062475f42edc959f636
33+
- platform: windows
34+
create_revision: 9f455d2486bcb28cad87b062475f42edc959f636
35+
base_revision: 9f455d2486bcb28cad87b062475f42edc959f636
36+
37+
# User provided section
38+
39+
# List of Local paths (relative to this file) that should be
40+
# ignored by the migrate tool.
41+
#
42+
# Files that are not part of the templates will be ignored by default.
43+
unmanaged_files:
44+
- 'lib/main.dart'
45+
- 'ios/Runner.xcodeproj/project.pbxproj'

README.md

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
<p align="center">
2+
<img src="assets/icon/app_icon.png" width="120" alt="Auto Cloud Backup Logo" />
3+
</p>
4+
5+
<h1 align="center">☁️ Auto Cloud Backup</h1>
6+
7+
<p align="center">
8+
<b>Smart. Secure. Seamless.</b><br>
9+
Your media, automatically backed up to your private Telegram cloud.
10+
</p>
11+
12+
<p align="center">
13+
<a href="https://flutter.dev/">
14+
<img src="https://img.shields.io/badge/Flutter-%2302569B.svg?style=for-the-badge&logo=Flutter&logoColor=white" />
15+
</a>
16+
<a href="https://dart.dev/">
17+
<img src="https://img.shields.io/badge/Dart-%230175C2.svg?style=for-the-badge&logo=Dart&logoColor=white" />
18+
</a>
19+
<a href="https://core.telegram.org/bots/api">
20+
<img src="https://img.shields.io/badge/Telegram%20Bot%20API-0088cc?style=for-the-badge&logo=telegram&logoColor=white" />
21+
</a>
22+
<a href="LICENSE">
23+
<img src="https://img.shields.io/badge/license-MIT-green?style=for-the-badge" />
24+
</a>
25+
</p>
26+
27+
---
28+
29+
## 🌌 Overview
30+
31+
**Auto Cloud Backup** is a next-gen Flutter app that automatically backs up your photos & videos to your private **Telegram cloud**, without relying on third-party storage providers.
32+
33+
> 🧠 Designed for simplicity, privacy, and automation — just set it once, and it keeps your memories safe forever.
34+
35+
---
36+
37+
## 🖼️ App Preview
38+
39+
| Dashboard | Upload Progress | Developer Info |
40+
|--------------------------|------------------------------|-------------------------|
41+
| ![Home](assets/home.png) | ![Backup](assets/resent.png) | ![Dev](assets/abut.png) |
42+
43+
> ⚡ Minimal. Modern. Built with Flutter Material 3 + dark neon design.
44+
45+
---
46+
47+
## ✨ Key Features
48+
49+
| 🔍 Media Scanner | ☁️ Telegram Backup | 🔋 Smart Conditions |
50+
|------------------|-------------------|--------------------|
51+
| Detects new photos & videos instantly | Uses your private Telegram bot for uploads | Wi-Fi only mode + Battery awareness |
52+
53+
| 🔄 Auto & Manual Modes | 🧠 Intelligent Sync | 💎 Modern UI |
54+
|-------------------------|--------------------|--------------|
55+
| 15-minute auto sync or one-tap manual backup | Automatically resumes when connected | Animated dark-glass Flutter design |
56+
57+
---
58+
59+
## 🚀 Quick Start
60+
61+
### 🧩 1. Clone the Repo
62+
```bash
63+
git clone https://github.com/ReXiOP/Telegarm_auto-backup.git
64+
cd auto-cloud-backup
65+
```
66+
67+
### ⚙️ 2. Install Dependencies
68+
```bash
69+
flutter pub get
70+
```
71+
72+
### 🔑 3. Configure Environment
73+
Create a `.env` file in the root:
74+
```env
75+
BOT_TOKEN=your_bot_token_here
76+
CHAT_ID=your_chat_id_here
77+
```
78+
79+
You can get:
80+
- **BOT_TOKEN** from [@BotFather](https://t.me/BotFather)
81+
- **CHAT_ID** using [@userinfobot](https://t.me/userinfobot)
82+
83+
### ▶️ 4. Run the App
84+
```bash
85+
flutter run
86+
```
87+
88+
---
89+
90+
## 🧱 Tech Stack
91+
92+
| Category | Tools & Frameworks |
93+
|-----------|--------------------|
94+
| **Frontend** | Flutter, Dart |
95+
| **Cloud** | Telegram Bot API |
96+
| **Permissions** | `permission_handler`, `photo_manager` |
97+
| **Storage** | SharedPreferences |
98+
| **System Info** | Battery Plus, Connectivity Plus |
99+
| **Design** | Material 3, Animated Widgets |
100+
| **Automation** | Background Timer, Smart Media Scanner |
101+
102+
---
103+
104+
## 🧰 Core Packages
105+
106+
| Package | Purpose |
107+
|----------|----------|
108+
| `flutter_dotenv` | Secure env config for Telegram tokens |
109+
| `http` | Upload photos & videos |
110+
| `photo_manager` | Access device gallery safely |
111+
| `shared_preferences` | Store settings & upload states |
112+
| `connectivity_plus` | Check network conditions |
113+
| `battery_plus` | Pause uploads when battery is low |
114+
| `permission_handler` | Request runtime permissions |
115+
116+
---
117+
118+
## 🧑‍💻 Developer Info
119+
120+
<p align="center">
121+
<img src="assets/dev_avatar.png" width="100" style="border-radius:50%;" alt="Sa Jid" />
122+
</p>
123+
124+
<h3 align="center">👋 Hi, I’m <b>Sa Jid</b></h3>
125+
<p align="center">
126+
<i>Flutter Developer • Cloud Automation Engineer • Cyber Security Enthusiast</i>
127+
</p>
128+
129+
<p align="center">
130+
<a href="https://github.com/ReXiOP">
131+
<img src="https://img.shields.io/badge/GitHub-181717?style=flat&logo=github&logoColor=white" />
132+
</a>
133+
<a href="https://www.linkedin.com/in/oxo-sajid">
134+
<img src="https://img.shields.io/badge/LinkedIn-0077B5?style=flat&logo=linkedin&logoColor=white" />
135+
</a>
136+
<a href="https://t.me/sajidRDS">
137+
<img src="https://img.shields.io/badge/Telegram-2CA5E0?style=flat&logo=telegram&logoColor=white" />
138+
</a>
139+
</p>
140+
141+
---
142+
143+
## 🛠️ Tech Skills
144+
145+
<div align="center">
146+
147+
| 🧠 Languages | ⚙️ Frameworks | ☁️ Tools |
148+
|---------------|---------------|-----------|
149+
| Python • Dart • Java • JavaScript • TypeScript • C / C++ | Flutter • React • Node.js | Firebase • Docker • Git • REST APIs • Telegram Bots |
150+
151+
</div>
152+
153+
---
154+
155+
## 🔒 Privacy & Security
156+
157+
Your data stays **100% private**:
158+
- All uploads go directly to **your Telegram account**.
159+
- No third-party storage, servers, or analytics.
160+
- You control permissions and connectivity settings.
161+
162+
> 💬 Transparency first. You see what’s uploaded, when, and how.
163+
164+
---
165+
166+
## 🧠 Roadmap
167+
168+
- [ ] Multi-account Telegram support
169+
- [ ] Encrypted file storage
170+
- [ ] Custom cloud restore
171+
- [ ] Selective folder sync
172+
- [ ] Smart schedule backup
173+
174+
---
175+
176+
## 📦 Release Info
177+
178+
| Version | Date | Highlights |
179+
|----------|------|------------|
180+
| **v1.0.0** | Nov 2025 | Initial stable release with Auto-Backup, Telegram Integration & UI Dashboard |
181+
182+
---
183+
184+
## 🖋️ License
185+
186+
This project is licensed under the **MIT License** — see the [LICENSE](LICENSE) file for details.
187+
188+
---
189+
190+
## 💬 Quote
191+
192+
> “Backup shouldn’t be a task — it should be automatic.”
193+
> **Sa Jid**, Flutter Developer ☁️
194+
195+
---
196+
197+
## 💖 Support
198+
199+
If this project helped you, please:
200+
-**Star** the repository
201+
- 🧠 **Contribute** via pull requests
202+
- 📣 **Share** it with your dev friends
203+
204+
<p align="center">
205+
<b>Made with ❤️ in Flutter by <a href="https://github.com/ReXiOP">Sa Jid</a></b>
206+
</p>

analysis_options.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# This file configures the analyzer, which statically analyzes Dart code to
2+
# check for errors, warnings, and lints.
3+
#
4+
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5+
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6+
# invoked from the command line by running `flutter analyze`.
7+
8+
# The following line activates a set of recommended lints for Flutter apps,
9+
# packages, and plugins designed to encourage good coding practices.
10+
include: package:flutter_lints/flutter.yaml
11+
12+
linter:
13+
# The lint rules applied to this project can be customized in the
14+
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
15+
# included above or to enable additional rules. A list of all available lints
16+
# and their documentation is published at https://dart.dev/lints.
17+
#
18+
# Instead of disabling a lint rule for the entire project in the
19+
# section below, it can also be suppressed for a single line of code
20+
# or a specific dart file by using the `// ignore: name_of_lint` and
21+
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
22+
# producing the lint.
23+
rules:
24+
# avoid_print: false # Uncomment to disable the `avoid_print` rule
25+
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
26+
27+
# Additional information about this file can be found at
28+
# https://dart.dev/guides/language/analysis-options

android/.gitignore

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
gradle-wrapper.jar
2+
/.gradle
3+
/captures/
4+
/gradlew
5+
/gradlew.bat
6+
/local.properties
7+
GeneratedPluginRegistrant.java
8+
.cxx/
9+
10+
# Remember to never publicly share your keystore.
11+
# See https://flutter.dev/to/reference-keystore
12+
key.properties
13+
**/*.keystore
14+
**/*.jks

android/app/build.gradle.kts

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
plugins {
2+
id("com.android.application")
3+
id("kotlin-android")
4+
// The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
5+
id("dev.flutter.flutter-gradle-plugin")
6+
}
7+
8+
android {
9+
namespace = "com.movibox.telegram_app"
10+
compileSdk =36//flutter.compileSdkVersion
11+
ndkVersion = flutter.ndkVersion
12+
13+
compileOptions {
14+
sourceCompatibility = JavaVersion.VERSION_11
15+
targetCompatibility = JavaVersion.VERSION_11
16+
}
17+
18+
kotlinOptions {
19+
jvmTarget = JavaVersion.VERSION_11.toString()
20+
}
21+
22+
defaultConfig {
23+
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
24+
applicationId = "com.movibox.telegram_app"
25+
// You can update the following values to match your application needs.
26+
// For more information, see: https://flutter.dev/to/review-gradle-config.
27+
minSdk =24 //flutter.minSdkVersion
28+
targetSdk = 36//flutter.targetSdkVersion
29+
versionCode = flutter.versionCode
30+
versionName = flutter.versionName
31+
}
32+
33+
buildTypes {
34+
release {
35+
// TODO: Add your own signing config for the release build.
36+
// Signing with the debug keys for now, so `flutter run --release` works.
37+
signingConfig = signingConfigs.getByName("debug")
38+
}
39+
}
40+
}
41+
42+
flutter {
43+
source = "../.."
44+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
<!-- The INTERNET permission is required for development. Specifically,
3+
the Flutter tool needs it to communicate with the running application
4+
to allow setting breakpoints, to provide hot reload, etc.
5+
-->
6+
<uses-permission android:name="android.permission.INTERNET"/>
7+
</manifest>
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
2+
3+
<uses-permission android:name="android.permission.INTERNET"/>
4+
5+
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
6+
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
7+
8+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
9+
10+
<application
11+
android:label="Backup"
12+
android:name="${applicationName}"
13+
android:icon="@mipmap/ic_launcher">
14+
<activity
15+
android:name=".MainActivity"
16+
android:exported="true"
17+
android:launchMode="singleTop"
18+
android:theme="@style/LaunchTheme"
19+
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
20+
android:hardwareAccelerated="true"
21+
android:windowSoftInputMode="adjustResize">
22+
23+
<meta-data
24+
android:name="io.flutter.embedding.android.NormalTheme"
25+
android:resource="@style/NormalTheme"
26+
/>
27+
<intent-filter>
28+
<action android:name="android.intent.action.MAIN"/>
29+
<category android:name="android.intent.category.LAUNCHER"/>
30+
</intent-filter>
31+
</activity>
32+
33+
<meta-data
34+
android:name="flutterEmbedding"
35+
android:value="2" />
36+
</application>
37+
</manifest>

0 commit comments

Comments
 (0)