|
21782
|
Prep App by @teteos | Stardance
|
teteos
|
0
|
97.76
|
0
|
[]
|
[{"post_id": 38856, "ts": "202 [{"post_id": 38856, "ts": "2026-08-01T12:49:09Z", "hours": 13.135, "text": "#devlog 5 :) Heyy!! everyone So, I’m building a context aware ai SAT app with flutter and dart with firebase and yea [I been so lost in schoolwork and got a fever n all so i wasn’t quite active.] Major changes i did : 1. For setup screen ( yea i’m still and still lost there): Last time, we had choosing a language in first step then answer some questions for the app to know u better but but it was only in english right like u choose the lanuage and the questions come in jus english and the Bottom Navigation Bar items where only converted into ur language buttttt i thought that why not covert the whole options and questions in ur language soooooo now tutorio converts IN 27 LANGUAGES the sec u choose the language ( i udpated 27 json files) and even greets u and motivates u in ur own language in the homescreen 2. Homescreen ( yea smthg new): yea i finally did smthg for the homescreen Now we 4 major sections home,leaderboard,test,profile and the homescreen greets u in ur language and has the top score board so when i have real users the app will show who got the highest test score in that 24 HOURS and then we have 4 modules and now ta i have made only outer screen ( i have add all course inside each modules and chapterwise test and have gemini api give u answers acc to ur ed system and learning style) So, thats it i have 27 LANGUAGE converting and a decent homescreen and yea Errors 😭:Cloudfirestore : Yea, I was running my app then suddenly when i choose a language it hit a error and boom everything was red and yellow warnings. I was so afraid and was thinking maybe i forgot to add a language in maindart or hsd and i was so freaked out and then i started to redo i activities then i realized i hadnt done billing in firestore when a created a database (i’m 15 , so no credit cards) yea i searched up for options then learned about storing locally and used sharedpreferences in flutter to keep everything running locally. Thanks for catching up and i’ll try to be more regular"}, {"post_id": 31308, "ts": "2026-07-19T16:35:23Z", "hours": 4.9789, "text": "Devlog #5 — Splash Screen + Setup Screen (˶ᵔᗜᵔ˶)ノ゙ Hello everyone!! This is my last devlog for that 80 hrs ( busy with school stuffs) . BEfore it had only 15 language in a big dart file now i did it better and debugged for 3 hrs and had like 27 json files to make it devlog presentable .This one covers the splash screen and the setup screen. The Splash Screen the splash screen is the first thing you see when you open Tutorio. The Tutorio logo fades in smoothly on a white background over 1.5 seconds, with a “LOADING…” label and a blue progress bar fading in underneath. Stays for 3 seconds then moves to login. I wrapped the progress bar in a ClipRRect to give it rounded edges instead of the ugly default sharp corners, and made sure to check mounted before navigating so it doesn’t crash if the user somehow exits early. The Setup Screen After login and signup, new users hit the setup screen before accessing anything else. This is genuinely the most important part of Tutorio’s whole concept — because the app is built specifically for international students, I need to know who you are before the AI can actually help you properly. The screen is split into two steps using a PageView with NeverScrollableScrollPhysics so users can only move forward using the button, not by swiping. Step 2 captures the student profile — grade, school system , home country, learning style, daily study time, and target SAT score. All six required. Once done it saves to Firestore under the user’s UID with setupComplete: true so this screen never appears again. Step 1 is where it got interesting. I needed to support 28 languages with their flags in a grid — Arabic, Bengali, Hindi, Nepali, Mandarin, Vietnamese, Turkish and more. My first instinct was to just keep everything in a giant Dart map directly in the code, something like: dartconst Map<String, Map<String, String» localizedValues = { ‘en’: {‘welcome’: ‘Welcome to Tutorio!’}, ‘ar’: {‘welcome’: ‘مرحباً بك في Tutorio!’}, }; And honestly for like 2-3 languages this works fine. Zero setup, no async loading, VS Code catches typos instantly. But the second I scaled to 27 languages it completely fell apart. The Dart files were getting thousands of lines long and impossible to read. If I wanted someone to fix a typo in Vietnamese or Turkish I’d have to hand them a raw .dart code file which is both a security risk and a syntax disaster waiting to happen. And worst of all, Flutter would load every single language’s strings into RAM at launch even though the user only needs one language active at a time. Complete waste. So I switched everything to external JSON files — en.json, ar.json, ne.json, one per language — all sitting inside assets/translations/. Then integrated the easy_localization package which lets me just call .tr() on any text widget anywhere in the app: dartText(‘welcome_msg’.tr()) The package dynamically opens the correct JSON file based on whatever language the user picked in setup, extracts the right string, and swaps it in on the fly. The Dart code went back to being clean UI logic with zero hardcoded text sitting in it. The best part — if I want to add language number 29, I don’t touch a single line of Flutter code. I just drop a new .json file into the translations folder and it works. Bugs I hit along the way 😭 Broken Imports: Restructuring into subfolders broke every import path reference and I had to fix them all manually. Not fun. Cascade Failure: An empty placeholder .dart file caused a domino effect and broke 4 other working files at once. Took forever to figure out what happened lol. Deprecation Warnings: Had to swap every .withOpacity() call across the project for the new .withValues(alpha:) method. Anyway that’s everything!! Next devlog covers the home screen and AI question engine. See you then (˶ᵔᗜᵔ˶) ✧"}, {"post_id": 26665, "ts": "2026-07-11T16:38:52Z", "hours": 0.3756, "text": "(#devlog4) Hello everyone(˶ᵔᗜᵔ˶)ノ゙, Welcome to Devlog #04 of my SAT Prep app of covering wot i did Hope you all are doing great. So right after finishing the log-in page, I jumped straight into getting the signup screen fully sorted out. Just like before, I made sure it connects smoothly to the home screen and lets you quickly tap back to the login page if you already have an account. I kept the exact same three options here too: full name with email/password, phone number signup, and a quick Google link. Since I had already gone through the absolute ringer getting Firebase and the whole ./gradlew signingReport SHA key situation set up for the phone auth on the login side, getting it running here wasn’t as brutal… but ugh, making sure the new account creation logic passed the user’s name correctly to the Firebase database so it actually updates their profile still took some annoying tweaking under the hood ∘ ∘ ∘ ( °ヮ° )I also cleaned up the styling here to match the new look completely! I dumped the old circular buttons and that top dark gap, changing it to the clean, edge-to-edge white layout. The fields and rectangular social buttons now stretch all the way across the screen beautifully ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧It feels way less cramped now, and everything aligns perfectly from the top to the bottom of the phone screen. Having both screens look identical makes the whole app feel like a real product now. So, yea and has like that asking ur education system so that the ai explanation and learning environment system will know and help u better. I’ll upload a read me on monday and this is my sign up screen. Thank You all so much for reading. Have a nice day =) ( i also learned we can upload more than one ss) :)"}, {"post_id": 26632, "ts": "2026-07-11T15:49:50Z", "hours": 0.5253, "text": "(#devlog3) I’m covering wot i did So yeah, for the login screen, I finally got it all hooked up and navigating properly to the home screen and the signup page. For the actual login options, I went with email/password, phone number, and Google sign-in. Getting all of that working with Firebase was honestly a massive headache, especially the phone auth side of things. It was tripping up so much that I literally had to rip it all out at one point, start over, and re-add it from scratch.To finally get it to cooperate, I had to create a separate auth_service.dart file to handle the logic and open up the terminal to run ./gradlew signingReport. That gave me the SHA keys I needed to paste into the Firebase console so the SMS codes would actually send. Design-wise, I wasn’t totally feeling the color choices and layout at first. It had these circular buttons and after that i changed to rectangle and i am not still sure with colour combo some times i want like classic and sometimes bubbly all of the options work by firebase ( since i using all google like gemini api,firebase n alll so i use firebase)"}, {"post_id": 26561, "ts": "2026-07-11T13:38:47Z", "hours": 67.5394, "text": "bruhhhh!!! its my first event so I didn’t know that we have to write devlog ( my first devlog had 1 view so i didnt upload other devlog i thought i’ll cover at end) so dumb okie now i cover wot ever i did in 5 devlogs okie this is my 1st one (#devlog2) soo yea after i set my flutter bg and all i created a new file login screen and i spent alot of time first selecting wot wot to keep like first i kept options: facebook,google,github,email and phone but i dont use fb yea so I was about to create one (for meta developer acc and testing) but i thought maybe i shouldnt add fb cuz yk young people rarely use it and i also removed github cuz there is rarely one in a sat app, so yea at last i kept phone,email and google and look this is my finalized app logo and in next devlog i’ll tell wot i finalized in my log in screen ( in next 15 min)"}, {"post_id": 13231, "ts": "2026-06-21T17:42:32Z", "hours": 11.2083, "text": "Devlog #1 Heyyy!!! i’m sweta and i’m making a SAT prep app for international students. So, most prep apps assume cultural context American students already have — idioms, references, essay phrasing. International students often lose points not from weak math, but from never having heard a phrase like “the writing was compelling.” This app gives AI-generated explanations that adapt to the student’s education system and English level. Stack: Flutter (one app for Android/iOS/web), Dart (Flutter’s language), Firebase (handles accounts/data, no server needed), Gemini API (generates explanations). Installing Flutter winget didn’t have it, so I cloned it from GitHub: git clone https://github.com/flutter/flutter.git C:\\flutter Added it to PATH so the terminal recognizes the flutter command: $env:Path += “;C:\\flutter\\bin” Ran flutter doctor to check the setup. VS Code + Android SDK Installed the Flutter extension (pulls in Dart too) — had to restart VS Code before commands appeared. Installed Android Studio only to get the Android SDK in the background; all real coding happens in VS Code. Fixed missing command-line tools via Android Studio’s SDK Manager, and accepted licenses with flutter doctor –android-licenses. Skipping the emulator Emulators eat RAM my laptop doesn’t have spare. Testing on my real phone over USB instead — enabled Developer Options + USB debugging, allowed the popup, confirmed detection with flutter devices. First run flutter create sat_prep_app cd sat_prep_app flutter run create makes a starter project with a demo app built in. run compiles and installs it on the connected phone. Slow first build, but it worked — proof the whole chain (Flutter → SDK → phone) connected properly. Firebase setup Created a free Firebase project (no billing), registered an Android app, placed the generated google-services.json config into android/app/. Added packages: flutter pub add firebase_core flutter pub add firebase_auth flutter pub add google_sign_in pub add installs pre-written code instead of writing it myself. firebase_core is required for any Firebase feature, firebase_auth handles sign up/login, google_sign_in adds Google login. Linking Flutter to Firebase dart pub global activate flutterfire_cli npm install -g firebase-tools firebase login flutterfire configure The FlutterFire CLI needed the separate official Firebase CLI too. The last command generated firebase_options.dart, auto-configuring Android, iOS, web, macOS, and Windows at once. Making the app use it Added Firebase initialization to the app’s startup code, swapped the demo app for a placeholder “Sign Up Screen Coming Soon” screen. Ran it again — showed up cleanly, no crashes, confirming Firebase is wired in. What’s next Real Sign Up and Login screens, connected to Firebase Authentication, then (country, education system, English level, SAT goals) (i’m using my phone not a emulator)"}]...
|
Title: Prep App by @teteos | Stardance
Devlogs:
D Title: Prep App by @teteos | Stardance
Devlogs:
Devlog #1 Heyyy!!! i’m sweta and i’m making a SAT prep app for international students. So, most prep apps assume cultural context American students already have — idioms, references, essay phrasing. International students often lose points not from weak math, but from never having heard a phrase like “the writing was compelling.” This app gives AI-generated explanations that adapt to the student’s education system and English level. Stack: Flutter (one app for Android/iOS/web), Dart (Flutter’s language), Firebase (handles accounts/data, no server needed), Gemini API (generates explanations). Installing Flutter winget didn’t have it, so I cloned it from GitHub: git clone https://github.com/flutter/flutter.git C:\flutter Added it to PATH so the terminal recognizes the flutter command: $env:Path += “;C:\flutter\bin” Ran flutter doctor to check the setup. VS Code + Android SDK Installed the Flutter extension (pulls in Dart too) — had to restart VS Code before commands appeared. Installed Android Studio only to get the Android SDK in the background; all real coding happens in VS Code. Fixed missing command-line tools via Android Studio’s SDK Manager, and accepted licenses with flutter doctor –android-licenses. Skipping the emulator Emulators eat RAM my laptop doesn’t have spare. Testing on my real phone over USB instead — enabled Developer Options + USB debugging, allowed the popup, confirmed detection with flutter devices. First run flutter create sat_prep_app cd sat_prep_app flutter run create makes a starter project with a demo app built in. run compiles and installs it on the connected phone. Slow first build, but it worked — proof the whole chain (Flutter → SDK → phone) connected properly. Firebase setup Created a free Firebase project (no billing), registered an Android app, placed the generated google-services.json config into android/app/. Added packages: flutter pub add firebase_core flutter pub add firebase_auth flutter pub add google_sign_in pub add installs pre-written code instead of writing it myself. firebase_core is required for any Firebase feature, firebase_auth handles sign up/login, google_sign_in adds Google login. Linking Flutter to Firebase dart pub global activate flutterfire_cli npm install -g firebase-tools firebase login flutterfire configure The FlutterFire CLI needed the separate official Firebase CLI too. The last command generated firebase_options.dart, auto-configuring Android, iOS, web, macOS, and Windows at once. Making the app use it Added Firebase initialization to the app’s startup code, swapped the demo app for a placeholder “Sign Up Screen Coming Soon” screen. Ran it again — showed up cleanly, no crashes, confirming Firebase is wired in. What’s next Real Sign Up and Login screens, connected to Firebase Authentication, then (country, education system, English level, SAT goals) (i’m using my phone not a emulator)
bruhhhh!!! its my first event so I didn’t know that we have to write devlog ( my first devlog had 1 view so i didnt upload other devlog i thought i’ll cover at end) so dumb okie now i cover wot ever i did in 5 devlogs okie this is my 1st one (#devlog2) soo yea after i set my flutter bg and all i created a new file login screen and i spent alot of time first selecting wot wot to keep like first i kept options: facebook,google,github,email and phone but i dont use fb yea so I was about to create one (for meta developer acc and testing) but i thought maybe i shouldnt add fb cuz yk young people rarely use it and i also removed github cuz there is rarely one in a sat app, so yea at last i kept phone,email and google and look this is my finalized app logo and in next devlog i’ll tell wot i finalized in my log in screen ( in next 15 min)
(#devlog3) I’m covering wot i did So yeah, for the login screen, I finally got it all hooked up and navigating properly to the home screen and the signup page. For the actual login options, I went with email/password, phone number, and Google sign-in. Getting all of that working with Firebase was honestly a massive headache, especially the phone auth side of things. It was tripping up so much that I literally had to rip it all out at one point, start over, and re-add it from scratch.To finally get it to cooperate, I had to create a separate auth_service.dart file to handle the logic and open up the terminal to run ./gradlew signingReport. That gave me the SHA keys I needed to paste into the Firebase console so the SMS codes would actually send. Design-wise, I wasn’t totally feeling the color choices and layout at first. It had these circular buttons and after that i changed to rectangle and i am not still sure with colour combo some times i want like classic and sometimes bubbly all of the options work by firebase ( since i using all google like gemini api,firebase n alll so i use firebase)
(#devlog4) Hello everyone(˶ᵔᗜᵔ˶)ノ゙, Welcome to Devlog #04 of my SAT Prep app of covering wot i did Hope you all are doing great. So right after finishing the log-in page, I jumped straight into getting the signup screen fully sorted out. Just like before, I made sure it connects smoothly to the home screen and lets you quickly tap back to the login page if you already have an account. I kept the exact same three options here too: full name with email/password, phone number signup, and a quick Google link. Since I had already gone through the absolute ringer getting Firebase and the whole ./gradlew signingReport SHA key situation set up for the phone auth on the login side, getting it running here wasn’t as brutal… but ugh, making sure the new account creation logic passed the user’s name correctly to the Firebase database so it actually updates their profile still took some annoying tweaking under the hood ∘ ∘ ∘ ( °ヮ° )I also cleaned up the styling here to match the new look completely! I dumped the old circular buttons and that top dark gap, changing it to the clean, edge-to-edge white layout. The fields and rectangular social buttons now stretch all the way across the screen beautifully ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧It feels way less cramped now, and everything aligns perfectly from the top to the bottom of the phone screen. Having both screens look identical makes the whole app feel like a real product now. So, yea and has like that asking ur education system so that the ai explanation and learning environment system will know and help u better. I’ll upload a read me on monday and this is my sign up screen. Thank You all so much for reading. Have a nice day =) ( i also learned we can upload more than one ss) :)
Devlog #5 — Splash Screen + Setup Screen (˶ᵔᗜᵔ˶)ノ゙ Hello everyone!! This is my last devlog for that 80 hrs ( busy with school stuffs) . BEfore it had only 15 language in a big dart file now i did it better and debugged for 3 hrs and had like 27 json files to make it devlog presentable .This one covers the splash screen and the setup screen. The Splash Screen the splash screen is the first thing you see when you open Tutorio. The Tutorio logo fades in smoothly on a white background over 1.5 seconds, with a “LOADING…” label and a blue progress bar fading in underneath. Stays for 3 seconds then moves to login. I wrapped the progress bar in a ClipRRect to give it rounded edges instead of the ugly default sharp corners, and made sure to check mounted before navigating so it doesn’t crash if the user somehow exits early. The Setup Screen After login and signup, new users hit the setup screen before accessing anything else. This is genuinely the most important part of Tutorio’s whole concept — because the app is built specifically for international students, I need to know who you are before the AI can actually help you properly. The screen is split into two steps using a PageView with NeverScrollableScrollPhysics so users can only move forward using the button, not by swiping. Step 2 captures the student profile — grade, school system , home country, learning style, daily study time, and target SAT score. All six required. Once done it saves to Firestore under the user’s UID with setupComplete: true so this screen never appears again. Step 1 is where it got interesting. I needed to support 28 languages with their flags in a grid — Arabic, Bengali, Hindi, Nepali, Mandarin, Vietnamese, Turkish and more. My first instinct was to just keep everything in a giant Dart map directly in the code, something like: dartconst Map<String, Map<String, String» localizedValues = { ‘en’: {‘welcome’: ‘Welcome to Tutorio!’}, ‘ar’: {‘welcome’: ‘مرحباً بك في Tutorio!’}, }; And honestly for like 2-3 languages this works fine. Zero setup, no async loading, VS Code catches typos instantly. But the second I scaled to 27 languages it completely fell apart. The Dart files were getting thousands of lines long and impossible to read. If I wanted someone to fix a typo in Vietnamese or Turkish I’d have to hand them a raw .dart code file which is both a security risk and a syntax disaster waiting to happen. And worst of all, Flutter would load every single language’s strings into RAM at launch even though the user only needs one language active at a time. Complete waste. So I switched everything to external JSON files — en.json, ar.json, ne.json, one per language — all sitting inside assets/translations/. Then integrated the easy_localization package which lets me just call .tr() on any text widget anywhere in the app: dartText(‘welcome_msg’.tr()) The package dynamically opens the correct JSON file based on whatever language the user picked in setup, extracts the right string, and swaps it in on the fly. The Dart code went back to being clean UI logic with zero hardcoded text sitting in it. The best part — if I want to add language number 29, I don’t touch a single line of Flutter code. I just drop a new .json file into the translations folder and it works. Bugs I hit along the way 😭 Broken Imports: Restructuring into subfolders broke every import path reference and I had to fix them all manually. Not fun. Cascade Failure: An empty placeholder .dart file caused a domino effect and broke 4 other working files at once. Took forever to figure out what happened lol. Deprecation Warnings: Had to swap every .withOpacity() call across the project for the new .withValues(alpha:) method. Anyway that’s everything!! Next devlog covers the home screen and AI question engine. See you then (˶ᵔᗜᵔ˶) ✧
#devlog 5 :) Heyy!! everyone So, I’m building a context aware ai SAT app with flutter and dart with firebase and yea [I been so lost in schoolwork and got a fever n all so i wasn’t quite active.] Major changes i did : 1. For setup screen ( yea i’m still and still lost there): Last time, we had choosing a language in first step then answer some questions for the app to know u better but but it was only in english right like u choose the lanuage and the questions come in jus english and the Bottom Navigation Bar items where only converted into ur language buttttt i thought that why not covert the whole options and questions in ur language soooooo now tutorio converts IN 27 LANGUAGES the sec u choose the language ( i udpated 27 json files) and even greets u and motivates u in ur own language in the homescreen 2. Homescreen ( yea smthg new): yea i finally did smthg for the homescreen Now we 4 major sections home,leaderboard,test,profile and the homescreen greets u in ur language and has the top score board so when i have real users the app will show who got the highest test score in that 24 HOURS and then we have 4 modules and now ta i have made only outer screen ( i have add all course inside each modules and chapterwise test and have gemini api give u answers acc to ur ed system and learning style) So, thats it i have 27 LANGUAGE converting and a decent homescreen and yea Errors 😭:Cloudfirestore : Yea, I was running my app then suddenly when i choose a language it hit a error and boom everything was red and yellow warnings. I was so afraid and was thinking maybe i forgot to add a language in maindart or hsd and i was so freaked out and then i started to redo i activities then i realized i hadnt done billing in firestore when a created a database (i’m 15 , so no credit cards) yea i searched up for options then learned about storing locally and used sharedpreferences in flutter to keep everything running locally. Thanks for catching up and i’ll try to be more regular...
|
1793872509.4386542
|
1794736509.4386542
|
|
51296
|
FIRST Command by @DeltaVortex | Stardance
|
DeltaVortex
|
0
|
13.37
|
0
|
[]
|
[{"post_id": 50789, "ts": "202 [{"post_id": 50789, "ts": "2026-08-20T05:33:51Z", "hours": 5.3661, "text": "Command devlog #2 —Hello again proggers— 5 hours. For a patch-and-test pass. Not because the bugs were hard, because Windows decided the build machine needed an ATL error to ruin a chunk of the day. ATL. of all things. ATL Not a feature devlog this time. This one’s the boring-but-necessary kind — patching up bugs, wrestling with the models, and actually testing the stuff from devlog #1 before any of it gets near a push. Command’s Flutter/Dart, so at least the actual app-side debugging felt normal. The build machine did not. Cat or dog? flutter test Okay let’s get into it~ —Yap— No new features this round. Just cleanup. Turns out shipping four features to local branches at once means devlog #2 is entirely “make sure the four features from devlog #1 actually hold up” — and then an 11 hour detour into Windows build tooling that had nothing to do with Dart at all. —The Great Suffering— 1 — The Windows ATL Bug The actual reason this took 5 hours. Build machine choked on an ATL-related error that had nothing to do with the Flutter/Dart side of things and everything to do with Windows being Windows. Ate a big chunk of the day before the rest of the work could even start. a Flutter project should not know what ATL is, and yet 2 — General Patch-Up Once the build machine cooperated, a round of small bug fixes across the existing work — nothing dramatic enough for its own section, just the usual pile of “that’s not supposed to do that” from actually testing instead of building. 3 — Model Issues Ran into friction on the model side, the kind that only shows up once real data flows through instead of a clean test fixture. 4 — Testing, Actually Spent real time testing rather than building, a different muscle entirely, and found what needed finding because of it. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who lost a chunk of the day to a Windows Active Template Library error in a Dart project. Q: What is Command built in? A: Flutter and Dart. Q: What’s ATL doing in a Flutter build pipeline? A: A very good question. Windows build tooling drags in native dependencies that have nothing to do with your actual language, and one of them decided to break. Q: Why no new features this devlog? A: Because four features from last time needed to survive testing, and then 5 hours went to a build machine instead. Q: Is any of this pushed yet? A: Still local. Getting closer, slower than planned. —This is the end*— *end for now, Windows build tools permitting PIPER!!!"}, {"post_id": 50453, "ts": "2026-08-19T16:48:14Z", "hours": 8.0, "text": "Command devlog #1 —Hello again proggers— New project, new devlog series. This is Command, and this is its very first entry, kicked off with the first real batch of changes since fc.deltaavdevs.com went live. Four features, backend and frontend both, all sitting on local testing branches — nothing pushed yet, on purpose. Cat or dog? view_alliance Okay let’s get into it~ —Yap— FIRST scouting tooling apparently needed team assignment, performance auditing, cross-alliance data sharing, and import support all at once, so that’s what got built. Everything here is local-only for now. Testing branches exist for a reason. —The Great Suffering— 1 — Assign Scouts To Teams New /api/assignments* endpoints plus scout_assignments_page.dart on the frontend. Completion is computed live from existing reports instead of tracked as a stale flag that drifts out of sync with reality the moment someone forgets to update it. 2 — Performance Auditing /api/scouts/ /performance plus feedback notes, computed from existing data rather than some separate tracked metric. Framed deliberately as coaching signal, not a score — nobody needs a leaderboard of who’s worst at scouting. Includes a feedback loop for thanking scouts who turn in good data, since positive reinforcement apparently works better than a spreadsheet judging you silently. 3 — Cross-Team Data Sharing /api/alliance/shares , unilateral grant model with separate pit/notes permission toggles. Reuses view_alliance/edit_alliance permissions the codebase had already reserved at some point and just never actually implemented. Nice to finally use something that’s been sitting there. 4 — Import From Other Apps “RadioScoutz” turned out to be Scoutradioz once actually searched for, confirmed and supported directly. “Manta” didn’t match any real app that could be found, so instead of guessing a format and hoping, it falls through to the generic CSV/JSON importer. Every import is undoable in one call, because guessing wrong on an import shouldn’t mean manually cleaning up a database. 5 — Found During Self-Review: The Import Bug Self-review turned up a real one: the import route had no per-row error handling on the DB insert loop. One bad row could silently corrupt a batch’s reported counts with no error surfaced anywhere. Fixed before this ever got near a real import. found it myself before it found someone else, counts as a win —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one starting a brand new devlog series on top of three other ones. Q: Why nothing pushed yet? A: Four features touching backend and frontend at once deserves local testing first, not a live branch someone else pulls mid-break. Q: What’s “Manta” actually referring to? A: Unknown. Searched, found nothing matching a real scouting app by that name, so it’s just generic importer territory until proven otherwise. Q: Is performance auditing going to make scouts feel judged? A: That’s specifically what the “coaching signal, not a score” framing and the thank-scouts feedback loop are trying to avoid. Q: Was the import bug caught before it broke anything real? A: Yes, self-review, before it touched a real batch. —This is the end*— *end for now, unpushed branches permitting FRC!!!"}]...
|
Title: FIRST Command by @DeltaVortex | Stardance
Title: FIRST Command by @DeltaVortex | Stardance
Devlogs:
Command devlog #1 —Hello again proggers— New project, new devlog series. This is Command, and this is its very first entry, kicked off with the first real batch of changes since fc.deltaavdevs.com went live. Four features, backend and frontend both, all sitting on local testing branches — nothing pushed yet, on purpose. Cat or dog? view_alliance Okay let’s get into it~ —Yap— FIRST scouting tooling apparently needed team assignment, performance auditing, cross-alliance data sharing, and import support all at once, so that’s what got built. Everything here is local-only for now. Testing branches exist for a reason. —The Great Suffering— 1 — Assign Scouts To Teams New /api/assignments* endpoints plus scout_assignments_page.dart on the frontend. Completion is computed live from existing reports instead of tracked as a stale flag that drifts out of sync with reality the moment someone forgets to update it. 2 — Performance Auditing /api/scouts/ /performance plus feedback notes, computed from existing data rather than some separate tracked metric. Framed deliberately as coaching signal, not a score — nobody needs a leaderboard of who’s worst at scouting. Includes a feedback loop for thanking scouts who turn in good data, since positive reinforcement apparently works better than a spreadsheet judging you silently. 3 — Cross-Team Data Sharing /api/alliance/shares , unilateral grant model with separate pit/notes permission toggles. Reuses view_alliance/edit_alliance permissions the codebase had already reserved at some point and just never actually implemented. Nice to finally use something that’s been sitting there. 4 — Import From Other Apps “RadioScoutz” turned out to be Scoutradioz once actually searched for, confirmed and supported directly. “Manta” didn’t match any real app that could be found, so instead of guessing a format and hoping, it falls through to the generic CSV/JSON importer. Every import is undoable in one call, because guessing wrong on an import shouldn’t mean manually cleaning up a database. 5 — Found During Self-Review: The Import Bug Self-review turned up a real one: the import route had no per-row error handling on the DB insert loop. One bad row could silently corrupt a batch’s reported counts with no error surfaced anywhere. Fixed before this ever got near a real import. found it myself before it found someone else, counts as a win —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one starting a brand new devlog series on top of three other ones. Q: Why nothing pushed yet? A: Four features touching backend and frontend at once deserves local testing first, not a live branch someone else pulls mid-break. Q: What’s “Manta” actually referring to? A: Unknown. Searched, found nothing matching a real scouting app by that name, so it’s just generic importer territory until proven otherwise. Q: Is performance auditing going to make scouts feel judged? A: That’s specifically what the “coaching signal, not a score” framing and the thank-scouts feedback loop are trying to avoid. Q: Was the import bug caught before it broke anything real? A: Yes, self-review, before it touched a real batch. —This is the end*— *end for now, unpushed branches permitting FRC!!!
Command devlog #2 —Hello again proggers— 5 hours. For a patch-and-test pass. Not because the bugs were hard, because Windows decided the build machine needed an ATL error to ruin a chunk of the day. ATL. of all things. ATL Not a feature devlog this time. This one’s the boring-but-necessary kind — patching up bugs, wrestling with the models, and actually testing the stuff from devlog #1 before any of it gets near a push. Command’s Flutter/Dart, so at least the actual app-side debugging felt normal. The build machine did not. Cat or dog? flutter test Okay let’s get into it~ —Yap— No new features this round. Just cleanup. Turns out shipping four features to local branches at once means devlog #2 is entirely “make sure the four features from devlog #1 actually hold up” — and then an 11 hour detour into Windows build tooling that had nothing to do with Dart at all. —The Great Suffering— 1 — The Windows ATL Bug The actual reason this took 5 hours. Build machine choked on an ATL-related error that had nothing to do with the Flutter/Dart side of things and everything to do with Windows being Windows. Ate a big chunk of the day before the rest of the work could even start. a Flutter project should not know what ATL is, and yet 2 — General Patch-Up Once the build machine cooperated, a round of small bug fixes across the existing work — nothing dramatic enough for its own section, just the usual pile of “that’s not supposed to do that” from actually testing instead of building. 3 — Model Issues Ran into friction on the model side, the kind that only shows up once real data flows through instead of a clean test fixture. 4 — Testing, Actually Spent real time testing rather than building, a different muscle entirely, and found what needed finding because of it. —FAQ (no one asked these but they are here)— Q: What is a “progger”? A: A human programmer. You. The one who lost a chunk of the day to a Windows Active Template Library error in a Dart project. Q: What is Command built in? A: Flutter and Dart. Q: What’s ATL doing in a Flutter build pipeline? A: A very good question. Windows build tooling drags in native dependencies that have nothing to do with your actual language, and one of them decided to break. Q: Why no new features this devlog? A: Because four features from last time needed to survive testing, and then 5 hours went to a build machine instead. Q: Is any of this pushed yet? A: Still local. Getting closer, slower than planned. —This is the end*— *end for now, Windows build tools permitting PIPER!!!...
|
1793872539.0573418
|
1794736539.0573418
|