-
Notifications
You must be signed in to change notification settings - Fork 1
chore: add drizzle folder to .gitignore, add CONTRIBUTING and README … #45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
Michael-cmd-sys
wants to merge
7
commits into
master
Choose a base branch
from
docs
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from 1 commit
Commits
Show all changes
7 commits
Select commit
Hold shift + click to select a range
cb91a24
chore: add drizzle folder to .gitignore, add CONTRIBUTING and README …
Michael-cmd-sys 8b0a0b4
fix some minor bugs
Michael-cmd-sys 878dfa7
Update src/components/TRPCProvider.tsx
Michael-cmd-sys c226534
Update src/app/_layout.tsx
Michael-cmd-sys c95b001
Update app.json
Michael-cmd-sys f334ebc
All of the changes are in our Wiki
Gamius00 1edf01c
All of the changes are in our Wiki
Gamius00 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,311 @@ | ||
| # Contributing to Finance-IO | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| Thank you for your interest in contributing to Finance-IO! We welcome contributions from everyone, whether you're fixing bugs, improving documentation, or adding new features. | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ## Code of Conduct | ||
|
|
||
| This project adheres to a code of conduct to ensure a welcoming environment for all contributors. By participating, you agree to: | ||
|
|
||
| - Be respectful and inclusive | ||
| - Focus on constructive feedback | ||
| - Accept responsibility for mistakes | ||
| - Show empathy towards other community members | ||
| - Help create a positive environment | ||
|
|
||
| ## How to Contribute | ||
|
|
||
| ### Types of Contributions | ||
|
|
||
| - **Bug Reports**: Report bugs using our issue templates | ||
| - **Feature Requests**: Suggest new features via GitHub Discussions | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - **Code Contributions**: Fix bugs or implement features | ||
| - **Documentation**: Improve docs, add examples, or fix typos | ||
| - **Testing**: Add or improve test coverage | ||
|
|
||
| ### Getting Started | ||
|
|
||
| 1. **Fork the Repository** | ||
|
|
||
| ```bash | ||
| git clone https://github.com/The-Creative-Programming-Group/finance-io.git | ||
| cd finance-io | ||
| ``` | ||
|
|
||
| 2. **Set Up Development Environment** | ||
|
|
||
| ```bash | ||
| # Install dependencies | ||
| pnpm install | ||
|
|
||
| # Set up environment variables | ||
| cp .env.example .env.local | ||
|
|
||
| # Start development server | ||
| pnpm dev | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ``` | ||
|
|
||
| 3. **Create a Branch** | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ```bash | ||
| git checkout -b feature/your-feature-name | ||
| # or | ||
| git checkout -b fix/issue-number-description | ||
| ``` | ||
|
|
||
| ### Development Workflow | ||
|
|
||
| 1. **Make Changes**: Implement your feature or fix | ||
| 2. **Test Locally**: Ensure your changes work as expected | ||
| 3. **Run Tests**: Make sure all tests pass | ||
|
|
||
| ```bash | ||
| pnpm test | ||
| ``` | ||
|
|
||
| 4. **Format Code**: Run the linter and formatter | ||
|
|
||
| ```bash | ||
| pnpm lint | ||
| pnpm format | ||
| ``` | ||
|
|
||
| 5. **Commit Changes**: Use clear, descriptive commit messages | ||
|
|
||
| ```bash | ||
| git add . | ||
| git commit -m "feat: add user authentication flow" | ||
| ``` | ||
|
|
||
| 6. **Push and Create PR**: Push your branch and open a pull request | ||
|
|
||
| ## Development Setup | ||
|
|
||
| ### Prerequisites | ||
|
|
||
| - Node.js 18+ and pnpm | ||
| - Git | ||
| - Android Studio (for mobile development) | ||
| - Xcode (for iOS development, macOS only) | ||
|
|
||
| ### Environment Setup | ||
|
|
||
| 1. **Clone and Install** | ||
|
|
||
| ```bash | ||
| git clone https://github.com/The-Creative-Programming-Group/finance-io.git | ||
| cd finance-io | ||
| pnpm install | ||
| ``` | ||
|
|
||
| 2. **Database Setup** | ||
|
|
||
| ```bash | ||
| # Set up local database | ||
| pnpm db:generate | ||
| pnpm db:push | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| ``` | ||
|
|
||
| > **Note:** The `drizzle/` directory is gitignored. Each team member should run `pnpm db:generate` to create their own database migration files locally.3. **Environment Variables** | ||
| Create `.env.local` with the following required variables: | ||
|
|
||
| ```env | ||
| # Backend API URL (defaults to localhost for development) | ||
| EXPO_PUBLIC_API_URL="http://localhost:8081" | ||
|
|
||
| # Clerk Authentication (get from https://dashboard.clerk.com) | ||
| EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY="your_clerk_publishable_key_here" | ||
| CLERK_SECRET_KEY="your_clerk_secret_key_here" | ||
|
|
||
| # Database Connection (PostgreSQL) | ||
| DATABASE_URL="postgresql://username:password@host/database?sslmode=require" | ||
| ``` | ||
|
|
||
| **Getting Clerk Keys:** | ||
| - Visit [Clerk Dashboard](https://dashboard.clerk.com) | ||
| - Create or select your application | ||
| - Copy the publishable key for `EXPO_PUBLIC_CLERK_PUBLISHABLE_KEY` | ||
| - Copy the secret key for `CLERK_SECRET_KEY` (keep this secure!) | ||
|
|
||
| **Database Setup:** | ||
| - Use a PostgreSQL database (we recommend [Neon](https://neon.tech) for development) | ||
| - Replace the connection string with your database credentials | ||
| - Ensure SSL mode is set to `require` for production | ||
|
|
||
| **Getting a Neon PostgreSQL Database:** | ||
| - Visit [Neon Console](https://console.neon.tech) | ||
| - Sign up or sign in to your account | ||
| - Click "Create a project" | ||
| - Choose your project name (e.g., "finance-io-dev") | ||
| - Select your region (choose one close to you for better performance) | ||
| - Click "Create project" | ||
| - In your project dashboard, go to the "Connection Details" section | ||
| - Copy the connection string and replace the placeholder in your `.env.local` | ||
| - The connection string will look like: `postgresql://username:password@hostname/database?sslmode=require`### Available Scripts | ||
|
|
||
| - `pnpm dev` - Start development server | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - `pnpm build` - Build for production | ||
| - `pnpm test` - Run tests | ||
| - `pnpm lint` - Run ESLint | ||
| - `pnpm format` - Format code with Prettier | ||
| - `pnpm type-check` - Run TypeScript type checking | ||
| - `pnpm db:generate` - Generate database types | ||
| - `pnpm db:push` - Push database schema | ||
|
|
||
| ## Pull Request Process | ||
|
|
||
| ### Before Submitting | ||
|
|
||
| 1. **Update Documentation**: Ensure docs reflect your changes | ||
| 2. **Add Tests**: Include tests for new features | ||
| 3. **Update Changelog**: Add entry to CHANGELOG.md | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| 4. **Self-Review**: Check your code meets our standards | ||
|
|
||
| ### PR Template | ||
|
|
||
| Use our PR template and include: | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| - Clear description of changes | ||
| - Screenshots for UI changes | ||
| - Testing instructions | ||
| - Related issues | ||
|
|
||
| ### Review Process | ||
|
|
||
| 1. **Automated Checks**: CI runs tests and linting | ||
| 2. **Code Review**: Team reviews code quality and functionality | ||
| 3. **Testing**: Manual testing may be required | ||
| 4. **Approval**: At least one maintainer approval required | ||
| 5. **Merge**: Squash merge with descriptive commit message | ||
|
|
||
| ## Coding Standards | ||
|
|
||
| ### TypeScript/JavaScript | ||
|
|
||
| - Use TypeScript for all new code | ||
| - Follow ESLint configuration | ||
| - Use Prettier for formatting | ||
| - Prefer functional components in React | ||
| - Use meaningful variable and function names | ||
|
|
||
| ### React Native/Expo | ||
|
|
||
| - Follow Expo SDK guidelines | ||
| - Use TypeScript for type safety | ||
| - Implement proper error boundaries | ||
| - Use React Query for data fetching | ||
| - Follow React Native accessibility guidelines | ||
|
|
||
| ### Database | ||
|
|
||
| - Use Drizzle ORM for type-safe queries | ||
| - Follow database schema conventions | ||
| - Include proper indexes for performance | ||
| - Use transactions for complex operations | ||
|
|
||
| ### Commit Messages | ||
|
|
||
| Follow conventional commit format: | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| ```text | ||
| type(scope): description | ||
|
|
||
| [optional body] | ||
|
|
||
| [optional footer] | ||
| ``` | ||
|
|
||
| Types: `feat`, `fix`, `docs`, `style`, `refactor`, `test`, `chore` | ||
|
|
||
| ## Testing | ||
|
|
||
| ### Test Types | ||
|
|
||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| - **Unit Tests**: Test individual functions and components | ||
| - **Integration Tests**: Test component interactions | ||
| - **E2E Tests**: Test complete user flows | ||
|
|
||
| ### Running Tests | ||
|
|
||
| ```bash | ||
| # Run all tests | ||
| pnpm test | ||
|
|
||
| # Run specific test file | ||
| pnpm test -- path/to/test | ||
|
|
||
| # Run tests in watch mode | ||
| pnpm test -- --watch | ||
|
|
||
| # Run tests with coverage | ||
| pnpm test -- --coverage | ||
| ``` | ||
|
|
||
| ### Writing Tests | ||
|
|
||
| - Use Jest and React Native Testing Library | ||
| - Test user interactions and edge cases | ||
| - Mock external dependencies | ||
| - Include accessibility testing | ||
| - Test both light and dark themes | ||
|
|
||
| ## Documentation | ||
|
|
||
| ### Code Documentation | ||
|
|
||
| - Add JSDoc comments for complex functions | ||
| - Document props for React components | ||
| - Include usage examples in comments | ||
| - Update README for new features | ||
|
|
||
| ### User Documentation | ||
|
|
||
| - Update docs for new features | ||
| - Include screenshots for UI changes | ||
| - Provide clear setup instructions | ||
| - Document breaking changes | ||
|
|
||
| ## Reporting Issues | ||
|
|
||
| ### Bug Reports | ||
|
|
||
| Use the bug report template and include: | ||
Gamius00 marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
|
|
||
| - Clear title and description | ||
| - Steps to reproduce | ||
| - Expected vs actual behavior | ||
| - Environment details (OS, device, app version) | ||
| - Screenshots or videos if applicable | ||
|
|
||
| ### Feature Requests | ||
|
|
||
| Use GitHub Discussions for feature requests: | ||
|
|
||
| - Clear description of the feature | ||
| - Use case and benefits | ||
| - Mockups or examples if applicable | ||
| - Alternative solutions considered | ||
|
|
||
| ## Community | ||
|
|
||
| ### Getting Help | ||
|
|
||
| - **GitHub Discussions**: General questions and ideas | ||
| - **GitHub Issues**: Bug reports and feature requests | ||
| - **Discord**: Real-time chat and support | ||
|
|
||
| ### Recognition | ||
|
|
||
| Contributors are recognized through: | ||
|
|
||
| - GitHub contributor statistics | ||
| - Changelog mentions | ||
| - Community shoutouts | ||
| - Contributor badges | ||
|
|
||
| ## License | ||
|
|
||
| <!-- By contributing to Finance-IO, you agree that your contributions will be licensed under the same license as the project (MIT License). --> | ||
|
|
||
| --- | ||
|
|
||
| Thank you for contributing to Finance-IO! Your efforts help make financial management more accessible and user-friendly for everyone. | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Consider committing Drizzle migrations for reproducible deploys.
Ignoring the entire drizzle/ directory makes schema history ephemeral and can break CI/CD. Prefer committing SQL migrations (and the journal) while ignoring generated extras.
Would you like me to adjust CONTRIBUTING.md accordingly?
📝 Committable suggestion
🤖 Prompt for AI Agents
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Michael-cmd-sys Please respect the coding standard, and fix these coderabbit suggestions
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.