Skip to content
Marukome0743Public

About

Disability Certificate Register System📇

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

2,712 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dcrs

Better Auth Biome Bun Drizzle Next.js React TanStack Form Tailwind CSS TypeScript StackBlitz GitHub Codespaces License

Disability Certificate Register System📇

📄 Usage

To clone and run this application, you'll need Git and Mise installed on your computer.
From your command line:

1. Clone this repository

git clone https://github.com/OpenUp-LabTakizawa/dcrs

2. Install dependencies using Bun

cd dcrs && bun i

3. Develop the app

bun dev

The app needs PostgreSQL and S3-compatible storage. Bring them up first with the local development environment, or start the web daemon, which does both.

4. Test the app

bun test:unit

5. E2E Test

bun test:e2e

6. Format and Lint the files

bun fix

7. Build the app

bun run build

8. Start the app

bun start

🐋 Local Development Environment

Instead of connecting to remote services (Neon PostgreSQL, Vercel Blob), you can run a fully local environment using Docker Compose with PostgreSQL and RustFS (S3-compatible storage).

Prerequisites: Docker

Start

mise dev:up

This single command will:

  1. Start PostgreSQL and RustFS via Docker Compose
  2. Run database migrations
  3. Create the S3 bucket in RustFS

The containers run under pitchfork as the db daemon rather than detached, so mise daemons logs db tails them and mise dev:down stops them. To bring the dev server up with the stack, start the web daemon instead -- it depends on db, so this does everything mise dev:up does and then runs bun dev:

mise daemons start web

Playwright runs against that daemon with:

mise test:e2e

It starts web -- and db through its depends -- reusing whatever already runs, then runs bun test:e2e. Run bun test:e2e directly when the server and the database are already up; on its own it spawns a dev server that dies with the test run, and in local mode that server talks to a database nobody started.

No .env is involved. The values live in the [env] table of mise.toml, and mise exports them into every shell opened inside the repository, so bun dev and the database commands pick them up on their own. That relies on mise's shell integration, which is also what puts bun on PATH; if mise doctor reports it as missing, enable it once:

echo 'eval "$(mise activate bash)"' >> ~/.bashrc && exec bash

See activate for zsh, fish, and friends, or use mise exec -- <cmd> for a one-off command.

Values resolve in this order:

Priority Source Used by
1 mise.local.toml Per-checkout overrides, secrets (gitignored)
2 [env] in mise.toml The local Docker stack

The entries are plain values, so mise sets them unconditionally: exporting a variable in your shell does not override them, and a .env left in the checkout is ignored for every key the table defines. Point a checkout somewhere else -- a Neon database, a Vercel Blob token -- from mise.local.toml.

Note: the defaults include S3_ENDPOINT=http://localhost:9000 for RustFS. If you use the S3 backend against real AWS instead, set S3_ENDPOINT = "" in mise.local.toml alongside the other S3_* values, so the SDK falls back to the AWS endpoint. This does not apply when BLOB_READ_WRITE_TOKEN is set, since Vercel Blob is then used and the S3_* values are ignored. mise dev:up always targets the local RustFS regardless, since it bootstraps that stack.

Stop

mise dev:down

Reset (delete volumes and restart)

mise dev:reset

Services

Service Host Port Description
PostgreSQL 5432 Database
RustFS S3 API 9000 S3-compatible object storage
RustFS Console 9001 Web management console

🚀 Production

Nothing in mise.toml reaches a deployment — Vercel builds never read it — so these come from the project's environment variables:

Variable Description Required
DATABASE_URL Neon PostgreSQL connection string ✅
BETTER_AUTH_SECRET Secret key for Better Auth session encryption ✅
BETTER_AUTH_URL Base URL for Better Auth ✅
AUTH_RESEND_KEY Resend API key for sending emails ✅
DB_TYPE Database driver type: neon (default) or postgres for standard PostgreSQL ❌
BLOB_READ_WRITE_TOKEN Vercel Blob read/write token. When set, Vercel Blob is the storage backend; otherwise S3 is used ❌
S3_ACCESS_KEY_ID AWS S3 access key ID (required when using the S3 backend) ❌
S3_SECRET_ACCESS_KEY AWS S3 secret access key (required when using the S3 backend) ❌
S3_REGION S3 region (AWS_REGION is also accepted; required when using the S3 backend) ❌
S3_BUCKET S3 bucket name (uses the default value if omitted) ❌
S3_ENDPOINT S3-compatible endpoint URL (e.g. http://localhost:9000 for RustFS). When set, path-style access is enabled ❌
API_URL Base URL for the API (default: http://localhost:3000) ❌

A local checkout needs none of them: the local development environment carries its own values, and per-checkout overrides go in mise.local.toml.

🆚 VSCode

Visual Studio Code is the recommended IDE for working on this project, as it has been configured.

Once opening, you can run Extensions: Show Recommended Extensions to install the recommended extensions for good development is automatically configured.

🐳 Dev Containers

A dev container is a running container with a well-defined tool/runtime stack and its prerequisites.
You can try out dev containers with GitHub Codespaces or Visual Studio Code Dev Containers.

Setting up the dev container

GitHub Codespaces

GitHub Codespaces
GitHub Codespaces is a cloud-based development environment that allows you to work on this project directly in your browser.
You can click the badge above or here to get started.

Follow these steps to open this project in a Codespace:

  1. Click the Code drop-down menu.
  2. Click on the Codespaces tab.
  3. Click Create codespace on main.

For more info, check out the GitHub documentation.

VSCode Dev Containers

Follow these steps to open this project in a container using the VSCode Dev Containers extension:

  1. If this is your first time using a dev container, please ensure your system meets the pre-reqs (i.e. have Docker installed) in the getting started steps.

  2. To use this repository, open a locally cloned copy of the code:

    • Clone this repository to your local filesystem.
    • Press F1 and select the Dev Containers: Open Folder in Container... command.
    • Select the cloned copy of this folder, wait for the container to start, and try things out!

🫶 Contribute

Want to report a bug, contribute some code, or improve the documentation? Excellent!
Read up on our guidelines for contributing and Code of Conduct.
Then check out one of our issues labeled as 😵‍💫help wanted or good first issue.

♥️ Contributors

Contributors

📦 Credits

This software uses the following open source packages:

⚖️ License

The Apache License Version 2.0 (2026) - OpenUp-LabTakizawa. Please have a look at the LICENSE for more details.

About

Disability Certificate Register System📇

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages