尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 README ↗This repository contains the Fluxgo public website and the admin portal, built with Next.js.
app/(site)/ holds the public pages: home, /support, and /privacy-terms. They share app/(site)/site.css and the parts in app/(site)/_components/. All public styles sit under the .fx root class.app/admin-portal/ holds the operations console. Its styles are in app/admin-portal/admin.css and load only on that route.fluxgo-frontend/src/constants/tokens.json.Install the dependencies, then start the development server.
npm install
npm run dev
Open http://localhost:3000 in your browser.
Import fluxgo-org/fluxgo-website into Vercel.
./Vercel detects Next.js from package.json. Add fluxgo.in as the custom domain after the first deployment.
Open /admin-portal to use the operations console.
The portal calls the backend admin routes with credentials: include. The
backend owns the session in an HttpOnly cookie. The browser does not store an
admin bearer token or password. Set NEXT_PUBLIC_FLUXGO_API_URL to the
approved API origin, such as http://127.0.0.1:3000 for local development or
the deployed API origin for the hosted website.
The console has a Today page (work that needs an admin, 7-day trends), a support inbox with owners, internal notes, and templates, and tables for members, rides, bookings, safety reports, manual vehicles, and the audit log. Tables support column resize, column visibility, server sorting, advanced filters, quick views, and CSV export. Record panels link members, rides, bookings, and tickets. Admins can suspend or reactivate members, cancel published rides, and send notifications. Admins sign in with email only.
The portal does not poll each view. It checks GET /v1/admin/dashboard/pulse
every 60 s (15 s in an open support chat), pauses while the tab is hidden or
after 10 min without input, and reloads only views whose data changed.
The portal is an installable web app (public/admin/manifest.webmanifest, scope /admin-portal). public/admin-sw.js only shows admin push notifications and opens the linked page on tap; it does not cache pages or data. Turn notifications on per device in the sidebar under Notifications. On iPhone, push works only after Safari Add to Home Screen (iOS 16.4+).
For a local preview with made-up data, run npm run dev:admin-mock and start
next dev with NEXT_PUBLIC_FLUXGO_API_URL=http://localhost:4010. Sign in with
[email protected] and preview-password. The mock uses no real data.
The reset form accepts the one-time code from the admin email. It also accepts
resetToken in the URL query for a future email-link template.
/ride/:publicId shows a public ride that a member shared from the app. It reads GET /v1/public/trips/:publicId and refreshes the data every 60 s. It has a per-ride preview image and noindex.
FLUXGO_API_URL: API base for server fetches. Default https://api.fluxgo.in.NEXT_PUBLIC_FLUXGO_OPEN_HOST_URL: host for the "Open in app" button. Default https://go.fluxgo.in. It must be a different domain from the page, or iOS does not open the app./.well-known/apple-app-site-association and /.well-known/assetlinks.json let the app open /ride/* and /open/ride/*. Serve them on www.fluxgo.in and go.fluxgo.in with no redirect. /open/ride/:publicId sends a visitor without the app to the App Store or Google Play. A computer goes to the web app. Ride pages show one button: open the app on a phone, or continue on the web on a computer.