{"id":15130203,"url":"https://github.com/philight/ts-nexstjs-repos","last_synced_at":"2026-01-20T14:07:46.126Z","repository":{"id":257245160,"uuid":"857559806","full_name":"Philight/ts-nexstjs-repos","owner":"Philight","description":"📒hello-world, full-stack, coding]","archived":false,"fork":false,"pushed_at":"2024-10-17T15:33:24.000Z","size":299,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T17:55:17.587Z","etag":null,"topics":["apollo","daisyui","graphql","mongodb","nestjs","nextjs","prisma","shadcn-ui","tailwindcss","tanstack-table"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Philight.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-09-15T01:12:24.000Z","updated_at":"2024-11-06T14:45:07.000Z","dependencies_parsed_at":"2024-09-15T14:05:45.023Z","dependency_job_id":"2a741e14-225d-4fbb-9207-9061fc186328","html_url":"https://github.com/Philight/ts-nexstjs-repos","commit_stats":null,"previous_names":["philight/ts-nexstjs-repos"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philight%2Fts-nexstjs-repos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philight%2Fts-nexstjs-repos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philight%2Fts-nexstjs-repos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Philight%2Fts-nexstjs-repos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Philight","download_url":"https://codeload.github.com/Philight/ts-nexstjs-repos/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393541,"owners_count":20931809,"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":["apollo","daisyui","graphql","mongodb","nestjs","nextjs","prisma","shadcn-ui","tailwindcss","tanstack-table"],"created_at":"2024-09-26T02:41:58.110Z","updated_at":"2026-01-20T14:07:46.061Z","avatar_url":"https://github.com/Philight.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\u003cimg width=\"200px\" src=\"https://github.com/Philight/ts-nexstjs-repos/blob/main/client/public/assets/icons/github.svg\"\u003e\u003c/div\u003e\n\u003ch1 align=\"center\"\u003e🗃️ GitHub repositories\u003c/h1\u003e\n\n\u003e Querying and searching GitHub repositories by keywords\n\n\u003e Client \u0026 server caching\n\n\u003e Responsive Table view, sorting, filtering\n\n\u003e\n\nWeb application listing repositories from the open-source GitHub database. Query by keyword on the client and fetch results from Apollo Server. Results are stored in MongoDB for faster queries.\n\nUI built with modern ShadCNUI + DaisyUI + Tailwind stack. Framer Motion for smooth animations. Next.js for SSR and SSG.\n\n## 🧑‍💻 Tech Stack\n\n### Frontend:\n\n- [Next.js](https://nextjs.org)\n- [Tailwind CSS](https://tailwindcss.com)\n- [ShadCN UI](https://ui.shadcn.com/)\n- [Daisy UI](https://daisyui.com/)\n- [Redux (Toolkit)](https://redux-toolkit.js.org/)\n- [TanStack Query](https://tanstack.com/query/v3/)\n- [TanStack Table](https://tanstack.com/table/)\n- [Framer Motion](https://www.framer.com/)\n\n### Backend:\n\n- [Nest.js](https://nestjs.com/)\n- [GraphQL](https://graphql.org/)\n- [MongoDB](https://www.mongodb.com/)\n- [Prisma ORM](https://www.prisma.io/)\n- [Swagger](https://swagger.io/)\n- [Passport JS](https://www.passportjs.org/)\n- [Faker JS](https://fakerjs.dev/)\n\n### Utilities:\n\n- [Typescript](https://www.typescriptlang.org/)\n- [PostCSS](https://postcss.org/)\n- [ESLint](https://eslint.org/)\n- [Prettier](https://prettier.io/)\n- [GraphQLRequest](https://www.npmjs.com/package/@golevelup/nestjs-graphql-request)\n- [Apollo Client](https://www.apollographql.com/docs/react/)\n- [Apollo Server](https://www.apollographql.com/docs/apollo-server/)\n\n## API spec\n\nData is fetched from the open [GitHub GraphQL API](https://docs.github.com/en/graphql)\n\nEndpoint for API -\u003e https://api.github.com/graphql\n\n\u003e Resources used\n\n- `search` -\u003e https://docs.github.com/en/graphql/reference/queries#search\n- `Repository` -\u003e https://docs.github.com/en/graphql/reference/objects#repository\n- `RepositoryOwner` -\u003e https://docs.github.com/en/graphql/reference/interfaces#repositoryowner\n- `Language` -\u003e https://docs.github.com/en/graphql/reference/objects#language\n\n## ⚙️ Configuration\n\n#### Getting started\n\nRun the following command on your local environment:\n\n```shell\ngit clone --depth=1 https://github.com/Philight/ts-nexstjs-repos.git my-project-name\ncd my-project-name\nnpm run install\n```\n\n\u003e use `npm run install` instead of `npm install`\n\n### Setting env variables\n\nIn `/server` directory\n\n```bash\ncd /server\n```\n\nrename `.env.example` to `.env` and change these environment variables:\n\n```\nDATABASE_URL=mongodb+srv://[db]:[pass]..\nGITHUB_ACCESS_TOKEN_CLASSIC=token123..\n```\n\n- set connection url to MongoDB or keep the connection string as it is (public user with public read access is configured)\n\n  \u003e Feel free to change the database provider, Prisma is used as ORM\n\n- set GitHub access token from Profile -\u003e Settings -\u003e Developer Settings -\u003e Personal Access Tokens (https://github.com/settings/tokens)\n\n#### Scope\n\n```\nrepo\n└── ✅ public_repo\n\n```\n\nIn `/client` directory\n\n```bash\ncd /client\n```\n\nrename `.env.example` to `.env`\n\n#### Folder structure\n\n```\n┌── package.json\n├── next-env.d.ts\n├── README.md\n├── TODO.md\n├── client\n├\t├──  package.json\n├\t├──  public\n├\t└──  src\n└── server\n\t├──  package.json\n\t└──  src\n```\n\nThen, change to root directory you can run the project locally in development mode with live reload by executing:\n\n```shell\nnpm run start\n\n```\n\n\u003e starts both Nest.js (http://localhost:8080) server and Next.js (http://localhost:3333) apps concurrently\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilight%2Fts-nexstjs-repos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fphilight%2Fts-nexstjs-repos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fphilight%2Fts-nexstjs-repos/lists"}