{"id":23449514,"url":"https://github.com/team-falkor/api","last_synced_at":"2025-10-10T11:05:25.421Z","repository":{"id":268846576,"uuid":"905154256","full_name":"Team-Falkor/api","owner":"Team-Falkor","description":"The backend to falkor","archived":false,"fork":false,"pushed_at":"2025-04-05T10:39:15.000Z","size":19,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-04-05T11:29:03.801Z","etag":null,"topics":["api","backend","bun","falkor"],"latest_commit_sha":null,"homepage":"","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/Team-Falkor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2024-12-18T09:13:45.000Z","updated_at":"2025-04-05T10:39:18.000Z","dependencies_parsed_at":"2025-02-15T18:53:25.149Z","dependency_job_id":"7b1848e7-9836-4911-a6c6-4294610caa9f","html_url":"https://github.com/Team-Falkor/api","commit_stats":null,"previous_names":["team-falkor/api"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Team-Falkor%2Fapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Team-Falkor%2Fapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Team-Falkor%2Fapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Team-Falkor%2Fapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Team-Falkor","download_url":"https://codeload.github.com/Team-Falkor/api/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248157016,"owners_count":21056938,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["api","backend","bun","falkor"],"created_at":"2024-12-23T23:19:22.638Z","updated_at":"2025-10-10T11:05:25.416Z","avatar_url":"https://github.com/Team-Falkor.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n \u003cimg alt=\"falkor\" height=\"150px\" src=\"https://raw.githubusercontent.com/Team-Falkor/falkor/refs/heads/testing/public/icon.png\"\u003e\n\u003c/div\u003e\n\n# Falkor API\n\nThis is the backend API for the Falkor project, built with [Elysia](https://elysiajs.com/) and [Bun](https://bun.sh) runtime.\n\n## 📋 Prerequisites\n\n- [Bun](https://bun.sh) (v1.0.0 or higher)\n\n## 🚀 Getting Started\n\n### Installation\n\n1. Clone the repository\n\n```bash\ngit clone https://github.com/team-falkor/api.git\ncd api\n```\n\n2. Install dependencies\n\n```bash\nbun install\n```\n\n3. Set up environment variables\n\nCreate a `.env` file in the root directory with the following variables:\n\n```\nDATABASE_URL=\"file:./prisma/dev.db\"\nBETTER_AUTH_SECRET=\"your-secret-key-at-least-32-characters-long\"\nSTEAM_API_KEY=\"your-steam-api-key\"\n```\n\n\u003e **Note**: Make sure your BETTER_AUTH_SECRET is at least 32 characters long for security. Get your Steam API key from [Steam Web API](https://steamcommunity.com/dev/apikey).\n\n4. Set up the database\n\n```bash\nbun run db:push\n```\n\n## 🏃‍♂️ Development\n\nTo start the development server with hot reloading:\n\n```bash\nbun run dev\n```\n\nThe API will be available at http://localhost:3000/\n\n## 🚢 Production\n\nTo start the production server:\n\n```bash\nbun run start\n```\n\n## 📊 Database Management\n\n- Pull the latest database schema: `bun run db:pull`\n- Push schema changes to the database: `bun run db:push`\n\n## 🔑 Authentication\n\nThe API uses [Better-auth](https://better-auth.com/) for authentication. Authentication endpoints are available under `/auth/*`.\n\n## 🛣️ API Endpoints\n\n### Authentication\n\n- All authentication endpoints are handled by Better-auth under `/auth/*`\n\n### Steam\n\n- `GET /steam/user/:steamUserId/games` - Get user's Steam games\n\n### Achievements\n\n- `GET /achievements/:steamId` - Get Steam game schema for achievements\n- `GET /achievements/user/:steamUserId/game/:appId` - Get player achievements for a specific game\n\n### Providers\n\n- `GET /providers` - Get available providers\n- `PUT /providers` - Submit a new provider\n- Admin routes available under `/providers/admin/*`\n\n### Analytics\n\n- `POST /analytics/pageview` - Record a page view\n- `POST /analytics/event` - Record an event\n- Admin routes available under `/analytics/admin/*`\n\n### Roadmap\n\n- `GET /roadmap` - Get roadmap events\n- Admin routes available under `/roadmap/admin/*`\n\n### Documentation\n\n- `GET /docs` - Swagger API documentation\n\n## 🧰 Project Structure\n\n```\napi-new/\n├── prisma/              # Database schema and migrations\n├── src/\n│   ├── @types/          # TypeScript type definitions\n│   ├── handlers/        # Business logic handlers\n│   ├── helpers/         # Helper functions and utilities\n│   ├── lib/             # Library configurations (auth, etc.)\n│   ├── modules/         # Feature modules\n│   │   ├── achievement/ # Steam achievements\n│   │   ├── analytics/   # Analytics tracking\n│   │   ├── plugins/     # Plugin providers\n│   │   ├── roadmap/     # Roadmap management\n│   │   └── steam/       # Steam API integration\n│   ├── plugins/         # Elysia plugins\n│   ├── utils/           # Utility functions\n│   └── index.ts         # Main application entry point\n├── .env                 # Environment variables (create this)\n├── package.json         # Project dependencies and scripts\n└── tsconfig.json        # TypeScript configuration\n```\n\n## 🔧 Technologies Used\n\n- [Bun](https://bun.sh) - JavaScript runtime \u0026 package manager\n- [Elysia](https://elysiajs.com/) - TypeScript web framework\n- [Prisma](https://www.prisma.io/) - Database ORM\n- [SQLite](https://www.sqlite.org/) - Database\n- [Better-auth](https://better-auth.com/) - Authentication\n- [@elysiajs/cors](https://elysiajs.com/plugins/cors.html) - CORS support\n\n## 📝 License\n\nThis project is licensed under the terms of the license included in the repository.\n\n# ❤️\n\nReminder that \u003cstrong\u003e\u003ci\u003eyou are great, you are enough, and your presence is valued.\u003c/i\u003e\u003c/strong\u003e If you are struggling with your mental health, please reach out to someone you love and consult a professional. You are not alone; there is a large range of resources online for support and guidance.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteam-falkor%2Fapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fteam-falkor%2Fapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fteam-falkor%2Fapi/lists"}