https://github.com/arkits/historian
🕵️ Historian Never Forgets
https://github.com/arkits/historian
express hacktoberfest lifelogging typescript
Last synced: 5 months ago
JSON representation
🕵️ Historian Never Forgets
- Host: GitHub
- URL: https://github.com/arkits/historian
- Owner: arkits
- Created: 2020-04-28T04:01:16.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2026-01-27T10:22:25.000Z (5 months ago)
- Last Synced: 2026-01-27T22:37:26.992Z (5 months ago)
- Topics: express, hacktoberfest, lifelogging, typescript
- Language: TypeScript
- Homepage: https://historian.archit.xyz/
- Size: 6.2 MB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Agents: AGENTS.md
Awesome Lists containing this project
README
# Historian
A full-stack web application built with Bun, React, tRPC, and PostgreSQL.
## Tech Stack
- **Runtime**: [Bun](https://bun.sh/) - Fast all-in-one JavaScript runtime
- **Frontend**: React 19 with TypeScript
- **Backend**: tRPC for type-safe APIs
- **Database**: PostgreSQL with [Drizzle ORM](https://orm.drizzle.team/)
- **Authentication**: [better-auth](https://www.better-auth.com/)
- **Styling**: Tailwind CSS with shadcn/ui components
- **Testing**: Vitest
- **Database Migrations**: Drizzle migrations
## Prerequisites
- [Bun](https://bun.sh/) installed
- PostgreSQL database (local or hosted)
## Getting Started
### Installation
```bash
bun install
```
### Environment Variables
Create a `.env` file based on `.env.example` (copy and modify):
```bash
cp .env.example .env
```
Configure the following variables:
- `DATABASE_URL` - PostgreSQL connection string
- `AUTH_SECRET` - Secret key for authentication
### Database Setup
Run migrations to set up the database schema:
```bash
bun run migrate
```
### Development
Start the development server with hot reload:
```bash
bun dev
```
The application will be available at `http://localhost:3000`
### Production
Build and start the production server:
```bash
bun run build
bun start
```
### Testing
Run tests with Vitest:
```bash
bun test
```
## Project Structure
```
├── src/
│ ├── client/ # tRPC client configuration
│ ├── components/ # React components (shadcn/ui)
│ ├── lib/ # Utility functions and database
│ ├── pages/ # Page components
│ ├── server/ # tRPC router and server setup
│ ├── App.tsx # Main App component
│ ├── frontend.tsx # Frontend entry point
│ └── index.ts # Application entry point
├── drizzle/
│ ├── meta/ # Drizzle migration metadata
│ └── 0000_heavy_venom.sql # Migration files
├── tests/ # Vitest test files
├── build.ts # Build script
├── migrate.ts # Database migration script
├── drizzle.config.ts # Drizzle configuration
└── bunfig.toml # Bun configuration
```
## Docker
Build and run with Docker:
```bash
docker build -t historian .
docker run -p 3000:3000 historian
```
## Available Scripts
| Command | Description |
| ------------------ | ------------------------ |
| `bun dev` | Start development server |
| `bun start` | Start production server |
| `bun run build` | Build the application |
| `bun test` | Run tests |
| `bun run migrate` | Run database migrations |
| `bun run db:reset` | Reset database schema |
## License
MIT