docs(readme): merge comprehensive project documentation and build guard
Integrates Build Architecture Guard documentation, project structure overview,
and contributing guidelines into README.md. Preserves existing application
overview, development setup, and technical architecture sections while adding
comprehensive project entry point for developers.
- Adds Build Architecture Guard section with setup and usage instructions
- Includes visual project structure with key directories and files
- Provides contributing guidelines for build-related changes
- Maintains existing application description, setup, and technical details
[Time Safari](https://timesafari.org/) allows people to ease into collaboration: start with expressions of gratitude
**Version**: 1.0.8-beta
and expand to crowd-fund with time & money, then record and see the impact of contributions.
**Description**: Time Safari Application
## Roadmap
See [ClickUp](https://sharing.clickup.com/9014278710/l/h/8cmnyhp-174/10573fec74e2ba0) for current priorities.
## Setup & Building
Quick start:
* For setup, we recommend [pkgx](https://pkgx.dev), which installs what you need (either automatically or with the `dev` command). Core dependencies are typescript & npm; when building for other platforms, you'll need other things such as those in the pkgx.yaml & BUILDING.md files.
```bash
npm install
npm run build:web:serve -- --test
```
To be able to make submissions: go to "profile" (bottom left), go to the bottom and expand "Show Advanced Settings", go to the bottom and to the "Test Page", and finally "Become User 0" to see all the functionality.
See [BUILDING.md](BUILDING.md) for comprehensive build instructions for all platforms (Web, Electron, iOS, Android, Docker).
## 🛡️ Build Architecture Guard
## 🛡️ Build Architecture Guard
@ -38,38 +56,240 @@ git push --no-verify
**📚 Full documentation**: See `doc/README-BUILD-GUARD.md`
**📚 Full documentation**: See `doc/README-BUILD-GUARD.md`
## 🚀 Quick Start
## Development Database Clearing
### Prerequisites
TimeSafari provides a simple script-based approach to clear the local database (not the claim server) for development purposes.
- Node.js 18+
## Logging Configuration
- npm, yarn, or pnpm
- Git
### Installation
TimeSafari supports configurable logging levels via the `VITE_LOG_LEVEL` environment variable. This allows developers to control console output verbosity without modifying code.
### Quick Usage
```bash
```bash
npm install
# Show only errors
npm run guard:setup # Sets up Build Architecture Guard
VITE_LOG_LEVEL=error npm run dev
# Show warnings and errors
VITE_LOG_LEVEL=warn npm run dev
# Show info, warnings, and errors (default)
VITE_LOG_LEVEL=info npm run dev
# Show all log levels including debug
VITE_LOG_LEVEL=debug npm run dev
```
### Available Levels
- **`error`**: Critical errors only
- **`warn`**: Warnings and errors (default for production web)
- **`info`**: Info, warnings, and errors (default for development/capacitor)
- **`debug`**: All log levels including verbose debugging
See [Logging Configuration Guide](doc/logging-configuration.md) for complete details.
### Quick Usage
```bash
# Run the database clearing script
./scripts/clear-database.sh
# Then restart your development server
npm run build:electron:dev # For Electron
npm run build:web:dev # For Web
```
### What It Does
#### **Electron (Desktop App)**
- Automatically finds and clears the SQLite database files
- Works on Linux, macOS, and Windows
- Clears all data and forces fresh migrations on next startup
#### **Web Browser**
- Provides instructions for using custom browser data directories
- Shows manual clearing via browser DevTools
- Ensures reliable database clearing without browser complications
### Safety Features
- ✅ **Interactive Script**: Guides you through the process
- ✅ **Platform Detection**: Automatically detects your OS
- ✅ **Clear Instructions**: Step-by-step guidance for each platform
- ✅ **Safe Paths**: Only clears TimeSafari-specific data
**Architecture Decision**: The project uses Vue mixins over Composition API composables for platform service access. See [Architecture Decisions](doc/architecture-decisions.md) for detailed rationale.
## 📁 Project Structure
## 📁 Project Structure
```text
```text
@ -85,21 +305,6 @@ timesafari/
└── 📄 doc/README-BUILD-GUARD.md # Guard system documentation
└── 📄 doc/README-BUILD-GUARD.md # Guard system documentation
```
```
## 🔧 Build System
This project supports multiple platforms:
- **Web**: Vite-based build with service worker support
- **Mobile**: Capacitor-based iOS and Android builds
- **`pull_request_template.md`** - PR template for build changes
## 🤝 Contributing
## 🤝 Contributing
1. **Follow the Build Architecture Guard** - Update BUILDING.md when modifying build files
1. **Follow the Build Architecture Guard** - Update BUILDING.md when modifying build files
@ -107,12 +312,15 @@ This project supports multiple platforms:
3. **Test your changes** - Ensure builds work on affected platforms
3. **Test your changes** - Ensure builds work on affected platforms
4. **Document updates** - Keep BUILDING.md current and accurate
4. **Document updates** - Keep BUILDING.md current and accurate
## 📄 License
## Kudos
[Add your license information here]
---
Gifts make the world go 'round!
**Note**: The Build Architecture Guard is active and will block
* [WebStorm by JetBrains](https://www.jetbrains.com/webstorm/) for the free open-source license
commits/pushes that modify build files without proper documentation
* [Máximo Fernández](https://medium.com/@maxfarenas) for the 3D [code](https://github.com/maxfer03/vue-three-ns) and [explanatory post](https://medium.com/nicasource/building-an-interactive-web-portfolio-with-vue-three-js-part-three-implementing-three-js-452cb375ef80)
updates. See `doc/README-BUILD-GUARD.md` for complete details.
* [Many tools & libraries](https://gitea.anomalistdesign.com/trent_larson/crowd-funder-for-time-pwa/src/branch/master/package.json#L10) such as Nodejs.org, IntelliJ Idea, Veramo.io, Vuejs.org, threejs.org
* [Bush 3D model](https://sketchfab.com/3d-models/lupine-plant-bf30f1110c174d4baedda0ed63778439)