Files
celloc3d.brain.riken.jp/README.md
T
Yoshihiro OKUMURA df2c671844 docs: rewrite readme and split out the changelog
The README still described the Create React App scaffold and mixed
the release history into the same file.

- Document the current stack, requirements, project structure,
  routes, data model, and build output
- Move the release history to CHANGELOG.md and add entries for
  3.0.0, 3.0.1, and 3.0.2
2026-09-09 12:45:01 +09:00

4.9 KiB

CelLoc-3D

React single-page application for celloc3d.brain.riken.jp.

CelLoc-3D is a database of the 3D arrangement of neocortical cells (glutamatergic/excitatory, GABAergic/inhibitory and/or astrocytes) identified in vivo in layer 2/3 of the primary visual cortex of the mouse by two-photon imaging. The application provides dataset search, dataset detail pages, downloadable data files, and a WebGL-based 3D viewer.

Tech Stack

Area Technology
Build tool Vite 8 with @vitejs/plugin-react
Language TypeScript 7
UI React 19, CSS Modules
Routing React Router 7 (react-router-dom)
State management Redux Toolkit, React Redux
HTTP client ky
3D rendering three.js
Document head @dr.pogodin/react-helmet
Analytics react-ga4
Lint / format Biome
Spell check CSpell

Requirements

  • Node.js ^20.19.0 or >=22.12.0 (required by Vite 8)
  • npm

Getting Started

Install the dependencies and start the development server:

npm install
npm run dev

Open http://localhost:5173 to view the application.

Available Scripts

In the project directory, you can run:

npm run dev

Runs the app in development mode with hot module replacement.
Open http://localhost:5173 to view it in the browser.

npm run build

Type-checks the project with tsc -b and builds the app for production into the dist folder.
The build is minified and the filenames include content hashes.

npm run preview

Locally preview the production build.

npm run lint

Run the Biome linter and apply the available fixes.

npm run lint:check

Check for code quality issues without making changes.

npm run format

Run Biome formatter, linter, and import sorting, and apply the available fixes.

npm run format:check

Run the same checks without making changes.

npm run spell:check

Run CSpell over the project files.

Project Structure

.
├── index.html              # Vite entry HTML
├── vite.config.ts          # Build configuration and manual chunk splitting
├── biome.json              # Formatter and linter configuration
├── cspell.json             # Spell checker dictionary
├── public/
│   ├── data/               # Per-dataset .dat, .json, and .png files
│   └── images/
└── src/
    ├── index.tsx           # Application entry point
    ├── App.tsx             # Layout, navigation, routes, GA initialization
    ├── app/                # Redux store and typed hooks
    ├── assets/             # data.json (dataset index), news.json
    ├── features/           # Feature components, each with its own CSS Module
    └── utils/              # Shared helpers

Routes

Path Component Description
/ News Landing page with news entries
/search SearchForm Dataset search form
/search/results SearchResults Search results list
/data/:name DataDetail Dataset detail and downloads
/data/:name/viewer DataViewer three.js 3D viewer
/help/* Help Help pages
/contact Contact Contact information
* CompatRedirect Redirects legacy .html and CGI URLs, otherwise renders NotFound

CompatRedirect maps the URLs of the previous static site (for example /Search.html, /Help_S1.html, /DB/TE/TE0001.html, and /cgi-bin/SearchResult.cgi) to their current equivalents.

Data Model

The dataset index is bundled from src/assets/data.json and is keyed by dataset name. Each entry holds the postnatal day (pd), recordingVolume, imagingDepth, cellType, area, cellNum, expDate, releaseDate, geneType, and remark fields. src/features/data/DataUtils.ts exposes exists(name) and search(params) over this index.

Per-dataset files are served statically from public/data/:

File Purpose
<name>.dat Cell coordinate data loaded by the 3D viewer
<name>.json Dataset metadata shown on the detail page
<name>.png Preview image

Build Output

vite.config.ts targets es2023 and splits vendor code into three chunks: vendor (React and React DOM), three (three.js), and vendor-lib (remaining dependencies).

Code Quality

Biome handles formatting, linting, and import sorting. The configuration uses the recommended rule preset with the React domain enabled, single quotes, trailing commas, two-space indentation, and a line width of 120.

CSpell checks spelling across the project. Project-specific vocabulary and ignored paths are maintained in cspell.json.

The .vscode/settings.json file registers Biome as the default formatter and enables source.fixAll.biome on save.

Changelog

See CHANGELOG.md for the release history.

Learn More