Files
finance/ENVIRONMENT_SETUP.md

120 lines
2.7 KiB
Markdown

# Development Environment Setup Guide
## Prerequisites
- Windows, macOS, or Linux
- Git
- Node.js (version 18 or higher)
- npm or yarn
- PostgreSQL (local installation or Docker)
## Initial Setup
1. **Clone the Repository**
```bash
git clone https://github.com/acedanger/finance.git
cd finance
```
2. **Install Dependencies**
```bash
npm install
```
3. **Create Environment File**
```bash
cp .env.example .env
```
4. **Configure Database**
- Edit the `.env` file with your PostgreSQL connection string:
```
DATABASE_URL="postgresql://username:password@localhost:5432/finance"
```
5. **Set up Database**
```bash
# Run database migrations
npx prisma migrate dev
# Seed the database with initial data (optional)
npx prisma db seed
```
## Git Hooks
This project uses Git hooks via Husky to enforce code quality:
1. **Pre-commit Hook:**
- Automatically runs Biome checks before each commit
- Prevents committing code with linting or formatting errors
- See [HOOKS.md](./HOOKS.md) for more details and usage instructions
## Pre-commit Hooks
The project uses Git hooks to enforce code quality standards automatically when committing changes.
### Setup
Husky is used to manage Git hooks and is automatically installed and configured when you run `npm install`. No manual setup is required.
### Available Hooks
1. **pre-commit**: Runs before each commit to ensure code quality
- Runs Biome.js to check and auto-fix formatting and path alias usage
- Runs TypeScript type checking
- Auto-stages files fixed by Biome.js
### Bypassing Hooks
In rare cases, you may need to bypass the pre-commit hooks:
```bash
git commit --no-verify -m "Your commit message"
```
⚠️ Note: Only bypass hooks when absolutely necessary and ensure code quality manually.
### Troubleshooting
If the pre-commit hook fails:
1. Review the error messages in the console
2. Fix the reported issues
3. Stage your changes again
4. Retry the commit
For hook execution issues:
```bash
# Reinstall husky hooks
npm run prepare
```
## Environment Configuration
The project uses an `.env` file for configuration:
- Application-specific configuration
- Database connection string
- Development server port
- API base URL
- Node environment
## Troubleshooting
### Database Issues
- Ensure PostgreSQL is running
- Check that your database connection string is correct in `.env`
- Try resetting the database: `npx prisma migrate reset`
### Build Issues
- Clear node_modules and reinstall: `Remove-Item -Recurse -Force node_modules; npm install`
- Check that all environment variables are set correctly
- Ensure you have the correct Node.js version installed
### Common Operations
### Starting Development Server
```bash
npm run dev
```