Fujimod
브라우저에서 카메라 펌웨어를 시험하고 Fujimod SD 부팅 파일을 만든다
Fly-Log는 개인 비행 기록과 여행 분석 플랫폼으로, 비행을 손쉽게 기록하고 지도에 여정을 시각화하며 특색 있는 통계를 제공합니다
Fly-Log is your personal flight logbook and travel analytics platform. Effortlessly track your flights, visualize your journeys on interactive maps, and discover unique travel statistics. Whether you'
라이프스타일JavaScript · TypeScriptGitHub @FedericoTartarini온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기An open-source and free flight tracker to map your journeys and travel statistics
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗This project analyzes personal flight history using Python and visualizes the data on an interactive map using a React and Vite-powered frontend.
The application has two main parts:
Follow these instructions to get a local copy up and running.
Clone the repository:
git clone <your-repository-url>
cd <repository-directory>
Prepare the data:
python directory.flights_with_coordinates.json file. This file is required by the frontend. You need to install the dependencies using uvInstall frontend dependencies:
npm install
Run the development server:
http://localhost:5173. The page will automatically reload if you make changes to the source code.npm run dev
npm run dev:netlify instead. Vite on its own does not
serve netlify/functions/, so those endpoints 404 under npm run dev.Build for production:
dist directory for deployment.npm run build
The ImageMagick helper script in scripts/optimize-assets.sh generates responsive WebP variants for images in src/assets. It creates -380.webp, -760.webp, -1200.webp, and -1800.webp sizes for each image, and includes explicit handling for the landing showcase image so it stays up to date whenever you replace it.
./scripts/optimize-assets.sh
Install Firebase CLI:
npm install -g firebase-tools
Login to Firebase:
firebase login:list # to see logged in accounts
firebase login # if not already logged in
firebase login:add # to add another account
firebase login:use # to select the project to use (run from project directory)
Initialize Firebase in your project:
firebase init
Deploy to Firebase:
firebase deploy
firebase deploy --only firestore:rules
This repo includes a sample Firestore rules file at firestore.rules that enforces per-user access to flight documents stored under /flights/{userId}/records/{docId}. Rules ensure that:
departure_date, departure_airport_iata, arrival_airport_iata, and airline_iata and departure_date must be a Firestore timestamp.To deploy those rules to your Firebase project use:
firebase deploy --only firestore:rules
Or, during firebase init, point the Firestore rules location to firestore.rules so rules are deployed together with hosting.
This project uses two testing frameworks:
Vitest is used for unit and integration testing of React components and utility functions.
Run all unit tests:
npm run test
Run tests in watch mode (automatically re-runs when files change):
npm run test:watch
Run tests with coverage report:
npm run test:coverage
Run tests in UI mode (interactive test runner):
npm run test:ui
Cypress is used for end-to-end testing of the complete application workflow.
Run Cypress tests in headless mode:
npm run cypress:run
Open Cypress Test Runner (interactive mode):
npm run cypress:open
Run Cypress tests against production build:
npm run build
npm run preview
npm run cypress:run
src/ alongside components (e.g., Component.test.jsx)test-utils/ (see test-utils/README.md for details on the global i18n test setup, how translations are injected during tests, and examples to override per-test).cypress/e2e/src/constants/testIds.jsExample unit test:
import { describe, it, expect } from "vitest";
import { render } from "../test-utils/render";
import { screen } from "@testing-library/react";
import { TEST_IDS } from "../constants/testIds";
import MyComponent from "./MyComponent";
describe("MyComponent", () => {
it("renders correctly", () => {
render(<MyComponent />);
expect(screen.getByText("Expected text")).toBeInTheDocument();
});
});
{
"scripts": {
"test": "vitest",
"test:watch": "vitest --watch",
"test:coverage": "vitest --coverage",
"test:ui": "vitest --ui",
"cypress:open": "cypress open",
"cypress:run": "cypress run"
}
}
See docs/developer-guide.md for the internal architecture map, data flow, and key module notes.