Projects

Post project development records, documents, and notices.

Develogs Project

Nitaku

A mobile app that allows you to create a tier table by repeating two choices.

 May 18, 2025

#DevLogs


Read more
Read less

NITAKU (Two Choices)

Demo Video of NITAKU App Screen under development

Overview

Let’s create a ranking table together!

Requirements

  • Android XX or later
  • iOS XX or later
  • Chrome XX or later

※ Updates to be reflected after verification.

Usage

To be documented.

References

Sort Create (Developer: @dachikabosu) as reference.

Author

TakaakiU

Notes

The following content will be transferred to personal website for project management and will be removed from README.

Feature Specifications

  • Generate Ranking Table
    • Perform round-robin comparisons (repeatedly choosing between two options) and ultimately generate a ranking table for evaluation targets.
    • Designed for ToC use.
  • User Authentication
    • Google Account Login: Use Firebase Authentication to allow users to log in with Google accounts. Profile editing and viewing user operation history are possible (currently, not implemented).
    • Guest Account Login (Anonymous): Use anonymous authentication to allow login without saving user operation history.
    • Apple Account Login: (currently not implemented).
  • Master Management of Themes (Projects)
    • Themes (projects) for round-robin comparison are managed in the format of text or text + image (currently not implemented).
  • Image Management: (currently not implemented).
    • User-uploaded images are managed with Firebase Storage.
    • Cloud Functions may process image compression and resizing as needed.

Development Flow

  • Design and Requirements Definition
    • Organize feature lists (round-robin comparison, login authentication, project management, etc.).
    • Screen design (wireframes, UI/UX design) and selection of technologies to use (Firebase suite, Flutter).
  • Environment Setup
    • Set up Flutter (Dart) development environment on Windows with Flutter SDK and develop using VS Code.
    • Build Flutter (Dart) development environment on MacOS as well (using Docker for MacOS containers).
    • Create Firebase projects and configure services such as Authentication, Firestore, Storage, Functions.
    • Install necessary Flutter packages (firebase_auth, cloud_firestore, firebase_storage, etc.).
  • User Authentication Implementation
    • Implement Google login and Apple login using Firebase Authentication. Web and Apple platforms support Google Account, Apple Account, and Guest login, while Android supports Google Account and Guest login.
    • Implement anonymous (guest) login and settings to prevent saving user history.
  • Round-Robin Comparison Feature Implementation
    • Design for storing project data in Firestore.
    • Perform round-robin comparison and ranking logic via Firebase Functions or client-side logic.
  • Image Upload Feature Implementation
    • Build image upload UI on Flutter side and link with Firebase Storage.
    • Add image processing functions using Cloud Functions if needed.
  • Testing & Debugging
    • Conduct unit tests and UI tests to verify the operation of each feature.
    • Validate behavior during guest user usage (e.g., history not being saved).
  • Deployment and Operation
    • Streamline release procedures for Firebase Hosting and publishing to App Store/Play Store.
    • Design monitoring operations using Firebase Analytics and Crashlytics.

Cost Management & Free Plan Utilization with Access Control

  • Free Plan Utilization
    • Flutter (Dart) itself is free.
    • Firebase Spark Plan allows use of Authentication, Firestore, Storage, Functions, Hosting within free quota.
  • Access Control During Paid Plan Activation
    • Firestore Security Rules: Implement data read/write controls based on user payment status (flag management?).
    • Firebase Functions: Check user payment status and show error messages or stop processes if free plan limits are exceeded.
    • Flutter App UI Control: For features requiring payment, implement UI restrictions so they are not visible or operable for free users.

Future Implementations

  • Revise UI/UX Modernize the look from its current initial state.
  • Implement login with Apple Account ※ Requires Apple Developer contracts and others.
  • User Management Features Add profile editing, viewing user operation history, and account deletion (control of data linked to deleted accounts as well).
  • Add images to themes during creation Implement features using Firebase Storage. While Spark Plan reportedly supports this, the console shows “Upgrade to paid plan,” indicating it might require payment.
  • Transition development environment Currently developing primarily in Windows with Flutter SDK installed, but plan to transition to MacOS + Docker environment.
  • Publish on Firebase Hosting
  • Apply to Google Store (Google Play) and Apple Store

1. Development Structure

Frontend

  • Language/Framework: Flutter (Dart)
  • UI Components: Material or Cupertino widgets
  • State Management: Riverpod / Bloc
  • Packages:
    • firebase_auth (User authentication)
    • cloud_firestore (Rank table data management)
    • firebase_storage (Image management)
    • flutter_hooks, provider (State management support)

Backend

  • Authentication: Firebase Authentication
  • Database: Firestore
  • Storage: Firebase Storage
  • Cloud Processing: Firebase Functions
  • Containerization: Unified development environment with Docker

2. Points for Docker Introduction

  1. Containerization of Flutter Development Environment
    • Use flutter official Docker image or build a custom environment.
    • Local Execution: Utilize Docker Compose to manage app and backend.
    • CI/CD: Integrate Docker-based builds with GitHub Actions.
  2. Firebase Development
    • Manage firebase-tools within the Docker image.
    • Set up emulator environments for Firestore / Authentication.
  3. Flutter App Deployment
    • Web Version: Deploy to Firebase Hosting (managed through Docker).
    • Mobile Version: Build and test using docker run.
  4. Backend Unification
    • Containerize Node.js-based Firebase Functions and build a local environment.
    • Cloud Functions handle image processing within execution.
Read less
Documents Project

Documents

Post project tutorials, guides, specifications, and manuals.

 May 18, 2025

#Documents


Read more
Read less

Title

This is project content.

Read less
Notices Project

Notices

None Excerpt.

 Jun 2, 2022

#Notices


Read more
Read less

None post.

Read less