{"id":27630431,"url":"https://github.com/fahimfba/crowdcredit","last_synced_at":"2026-02-17T15:32:03.269Z","repository":{"id":286173841,"uuid":"852602762","full_name":"FahimFBA/crowdcredit","owner":"FahimFBA","description":"A friendly money lending and crowdfunding platform inclusive for an institute","archived":false,"fork":false,"pushed_at":"2025-04-05T08:15:05.000Z","size":3180,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-09T23:39:35.182Z","etag":null,"topics":["crowdfunding","loan","react","reactjs","shadcn","sonner","tailwindcss","vercel","vercel-deployment"],"latest_commit_sha":null,"homepage":"https://crowdcredit.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FahimFBA.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-09-05T05:10:20.000Z","updated_at":"2025-04-05T08:16:22.000Z","dependencies_parsed_at":"2025-07-02T07:04:02.841Z","dependency_job_id":"eea805d6-9168-481d-916b-5c7ece44915e","html_url":"https://github.com/FahimFBA/crowdcredit","commit_stats":null,"previous_names":["fahimfba/crowdcredit"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FahimFBA/crowdcredit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FahimFBA%2Fcrowdcredit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FahimFBA%2Fcrowdcredit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FahimFBA%2Fcrowdcredit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FahimFBA%2Fcrowdcredit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FahimFBA","download_url":"https://codeload.github.com/FahimFBA/crowdcredit/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FahimFBA%2Fcrowdcredit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29548320,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-17T14:33:00.708Z","status":"ssl_error","status_checked_at":"2026-02-17T14:32:58.657Z","response_time":100,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["crowdfunding","loan","react","reactjs","shadcn","sonner","tailwindcss","vercel","vercel-deployment"],"created_at":"2025-04-23T16:43:29.012Z","updated_at":"2026-02-17T15:32:03.249Z","avatar_url":"https://github.com/FahimFBA.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CrowdCredit - Loan Management Platform\n\nA modern web application built with React, TypeScript, and Vite for managing crowd-funding and loan operations.\n\n## 🚀 Tech Stack\n\n- **Frontend Framework:** React 18.3\n- **Language:** TypeScript\n- **Build Tool:** Vite\n- **State Management:** Redux Toolkit\n- **Styling:** TailwindCSS\n- **UI Components:** Radix UI\n- **Authentication:** Supabase Auth\n- **Routing:** React Router DOM\n- **Form Handling:** Custom Form Components\n- **Date Handling:** Day.js\n- **Analytics:** React GA4\n- **Toast Notifications:** Sonner\n\n## 📁 Project Structure\n\n```\nsrc/\n├── _Hooks/               # Custom React hooks\n├── _Variables/           # Global variables and constants\n├── assets/              # Static assets\n├── components/          # Reusable UI components\n│   ├── Cards/          # Card components\n│   ├── Form/           # Form components\n│   ├── Layout/         # Layout components\n│   ├── Modal/          # Modal dialogs\n│   ├── Sheets/         # Sheet components\n│   ├── Skeleton/       # Loading states\n│   ├── Text/           # Text components\n│   └── ui/             # Base UI components\n├── config/             # Configuration files\n├── lib/                # Utility functions\n├── pages/             # Application pages\n│   ├── Authenticated/  # Protected routes\n│   ├── GeneralPages/   # Public routes\n│   └── utils/         # Routing utilities\n├── store/             # Redux store configuration\n│   ├── API/           # API integration\n│   ├── Slices/        # Redux slices\n│   └── hooks/         # Store hooks\n└── types/             # TypeScript types and interfaces\n```\n\n## 🛠️ Setup \u0026 Installation\n\n1. Clone the repository\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n3. Copy `.env.example` to `.env` and configure environment variables\n4. Start development server:\n   ```bash\n   npm run dev\n   ```\n\n## 📜 Available Scripts\n\n- `npm run dev` - Start development server\n- `npm run build` - Build for production\n- `npm run lint` - Run ESLint\n- `npm run preview` - Preview production build\n\n## 🎯 Key Features\n\n### Authentication\n- Supabase-based authentication system\n- Protected routes for authenticated users\n- Password reset functionality\n- Session management\n\n### Profile Management\n- Personal details management\n- Address information\n- Professional details\n- University information\n- Profile completion tracking\n\n### Crowdfunding\n- Create and manage crowdfunding posts\n- Detailed view of funding requests\n- Progress tracking\n- Interactive funding process\n\n### Loan Management\n- Loan request creation\n- Loan details viewing\n- Status tracking\n- Document management\n\n## 📸 Screenshots\n\n### Homepage\n![Homepage](img/homepage.png)\n\n### Logged In Dashboard\n![Logged In Dashboard](img/logged-in-page.png)\n\n### Crowdfunding Page\n![Crowdfunding Page](img/crowdfunding-page.png)\n\n### Loan Page\n![Loan Page](img/loan-page.png)\n\n### Create Crowdfunding Project\n![Create Crowdfunding Project](img/create-crowdfunding-project.png)\n\n### Create Loan Project\n![Create Loan Project](img/create-loan-project.png)\n\n## 🧩 Components\n\n### Cards\n- `CrowdFundingPost`: Displays crowdfunding opportunities\n- `Post`: Generic post display component\n- Profile Cards:\n  - `AddressDetails`: User address information\n  - `PersonalDetails`: Basic user information\n  - `ProfessionCard`: Professional information\n  - `UniversityDetails`: Educational background\n\n### Forms\n- Custom form components with validation\n- Pre-built templates for common forms\n- Input fields with error handling\n- Text area components\n\n### Layout\n- Responsive navbar with mobile support\n- Footer component\n- Mobile sidebar for navigation\n- Theme-aware components\n\n### Modals \u0026 Sheets\n- Base modal component\n- Delete confirmation modal\n- Sheet components for profile sections\n- Crowdfunding interaction sheets\n\n## 🔄 State Management\n\nThe application uses Redux Toolkit for state management with the following slices:\n\n- `userSlice`: User authentication and profile data\n- `systemSlice`: Application-wide settings and states\n- `notificationsSlice`: Toast notifications and alerts\n\n## 🎣 Custom Hooks\n\n- `useAuthStateChange`: Manages authentication state changes\n- `useControlledState`: Controlled form state management\n- `useRemainingHeight`: Dynamic height calculations\n- `useTheme`: Theme management\n\n## 🔐 Authentication Flow\n\n1. User signs up/logs in through Supabase Auth\n2. Authentication state is managed through Redux\n3. Protected routes are handled by RouteLogic component\n4. Session persistence using redux-persist\n\n## 🔌 API Integration\n\nAPI calls are organized in the `store/API` directory:\n- `tableDataAPI`: Database table operations\n- `userAuthAPI`: Authentication-related operations\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Commit your changes\n4. Push to the branch\n5. Open a pull request\n\n## 🔧 Configuration\n\n### ESLint\nThe project uses a custom ESLint configuration with:\n- TypeScript support\n- React-specific rules\n- Strict type checking\n\n### Tailwind\n- Custom configuration with animations\n- Theme support\n- Responsive design utilities\n\n## 🏗️ Architecture Decisions\n\n1. **Component Structure**\n   - Atomic design principles\n   - Separation of concerns\n   - Reusable base components\n\n2. **State Management**\n   - Centralized Redux store\n   - Local state when appropriate\n   - Persistent storage for critical data\n\n3. **Routing**\n   - Protected routes\n   - Role-based access\n   - Clean URLs\n\n4. **Performance**\n   - Code splitting\n   - Lazy loading\n   - Optimized builds\n\n## 📚 Type System\n\nThe project uses TypeScript with:\n- Strict type checking\n- Interface-first design\n- Enum usage for constants\n- Comprehensive type definitions\n\nTypes are organized in:\n- `types/interface.ts`: Interface definitions\n- `types/types.ts`: Type aliases\n- `types/enum.ts`: Enumerations\n\n## 🔍 Development Guidelines\n\n1. **Code Style**\n   - Use functional components\n   - Implement proper error handling\n   - Write meaningful comments\n   - Follow TypeScript best practices\n\n2. **Testing**\n   - Write unit tests for utilities\n   - Component testing\n   - Integration testing\n\n3. **Performance**\n   - Optimize renders\n   - Implement proper memoization\n   - Monitor bundle size\n\n4. **Security**\n   - Implement proper authentication\n   - Validate user input\n   - Handle sensitive data appropriately\n\n## 📦 Dependencies\n\n### Production Dependencies\n- React and React DOM\n- Redux Toolkit and React-Redux\n- Supabase for authentication\n- Radix UI components\n- TailwindCSS for styling\n- Day.js for date handling\n- React Router for navigation\n\n### Development Dependencies\n- TypeScript\n- ESLint\n- Vite\n- Various type definitions\n- Development utilities\n\n## 🚀 Deployment\n\nThe application can be deployed using:\n1. Build the application: `npm run build`\n2. Preview the build: `npm run preview`\n3. Deploy the `dist` directory to your hosting platform\n\n## 🤝 Support\n\nFor support, please:\n1. Check existing documentation\n2. Review issue tracker\n3. Create a new issue if needed\n\n---\n\nThis project is maintained with ❤️ by the CrowdCredit team.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffahimfba%2Fcrowdcredit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffahimfba%2Fcrowdcredit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffahimfba%2Fcrowdcredit/lists"}