mirror of
https://github.com/yusufipk/RepoHub.git
synced 2026-09-11 10:36:07 +00:00
73f9248e9892d739adaf6cb4422ee2c6fdaa8c02
- Implement onboarding modal with 3-step wizard - Category selection (up to 3 categories) - OS detection with manual override - Experience level selection - Add intelligent recommendation engine - Hybrid scoring algorithm (category 40%, popularity 30%, OS 20%, preset 10%) - 7 curated categories with preset packages - Support for all platforms (Windows, macOS, Ubuntu, Debian, Arch, Fedora) - Create recommendation UI components - RecommendationsSection with grid layout - Package cards with recommendation scores and reasons - User profile display with customization options - Add localStorage-based profile management - Persistent user preferences - Automatic OS detection - Profile CRUD operations via useRecommendationProfile hook - Implement API endpoint - POST /api/recommendations - GET /api/recommendations (query params) - Request validation and error handling - Add full i18n support - English and Turkish translations - Onboarding flow, categories, and UI labels - Update TypeScript config (lib: es2017 for array.includes) Closes #1
RepoHub - Cross-Platform Package Manager
Simplify software installation across Linux, Windows, and macOS with official repositories.
RepoHub provides a unified interface for package discovery and installation across different operating systems.
🚀 Features
- Cross-Platform Support: Works on Linux (Debian, Ubuntu, Arch, Fedora), Windows, and macOS.
- Official Repositories: Access software strictly from trusted, official sources.
- Script Generation: Generate idempotent installation scripts for your selected platform.
- Smart Filtering: efficiently browse and filter packages.
🛠️ Technology Stack
Frontend
- Framework: Next.js 14+ (React)
- Styling: Tailwind CSS
- Icons: Lucide React
- State Management: React Query + Zustand
Backend
- Runtime: Node.js (TypeScript)
- Database: PostgreSQL
- Infrastructure: Docker
🏁 Getting Started
Prerequisites
- Node.js 18+
- npm / pnpm / yarn
- Docker (optional, for database)
Installation
-
Clone the repository:
git clone https://github.com/yusufipk/RepoHub.git cd RepoHub -
Install dependencies:
npm install # or pnpm install -
Set up Environment Variables: Copy
.env.exampleto.envand configure your database connection.cp .env.example .env -
Run the development server:
npm run dev # or pnpm devOpen http://localhost:3000 with your browser to see the result.
🔄 API Usage
Syncing Repositories
You can trigger a repository sync using the API. This is useful for updating the package database.
Endpoint: POST /api/sync
Headers:
Content-Type:application/jsonx-sync-secret: Your sync secret key (required ifSYNC_SERVER_ONLY=true)
Body Parameters:
platform: The platform to sync. Options:debian: Sync Debian packages (Official Repo)ubuntu: Sync Ubuntu packages (Official Repo)arch: Sync Arch Linux packages (Official Repo)aur: Sync Arch User Repository (AUR) packagesfedora: Sync Fedora packages (Official Repo)windows: Sync Windows packages (Winget)macos: Sync macOS packages (Homebrew)all: Sync all platforms
Example Request:
curl -X POST http://localhost:3000/api/sync \
-H "Content-Type: application/json" \
-H "x-sync-secret: your_secret_key" \
-d '{"platform": "all"}'
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Languages
TypeScript
94.2%
JavaScript
3.8%
PLpgSQL
1.5%
CSS
0.5%