{"id":25010571,"url":"https://github.com/hideya/test-chatly-ai","last_synced_at":"2025-09-09T11:13:20.494Z","repository":{"id":266613710,"uuid":"897805787","full_name":"hideya/test-chatly-ai","owner":"hideya","description":null,"archived":false,"fork":false,"pushed_at":"2024-12-16T06:27:05.000Z","size":1220,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-07T13:03:39.429Z","etag":null,"topics":[],"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/hideya.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-03T09:18:16.000Z","updated_at":"2025-01-07T18:45:01.000Z","dependencies_parsed_at":"2024-12-05T07:28:33.945Z","dependency_job_id":"483d0cfb-b1a1-45ee-8f60-3746a4a6db6b","html_url":"https://github.com/hideya/test-chatly-ai","commit_stats":null,"previous_names":["hideya/test-chatly-ai"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hideya/test-chatly-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hideya%2Ftest-chatly-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hideya%2Ftest-chatly-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hideya%2Ftest-chatly-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hideya%2Ftest-chatly-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hideya","download_url":"https://codeload.github.com/hideya/test-chatly-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hideya%2Ftest-chatly-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274289497,"owners_count":25257968,"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","status":"online","status_checked_at":"2025-09-09T02:00:10.223Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-02-05T04:53:46.130Z","updated_at":"2025-09-09T11:13:20.466Z","avatar_url":"https://github.com/hideya.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple AI Chat App\n\nAn AI chat application providing conversational AI capabilities with user authentication and chat management functionality.\nThe system implements thread-based conversations with OpenAI integration and responsive UI interactions.\nSee [docs/FEATURES.md](docs/FEATURES.md) for a detailed list of features.\n\n## Table of Contents\n- [Prerequisites](#prerequisites)\n- [Installation](#installation)\n- [Environment Setup](#environment-setup)\n- [Building the Application](#building-the-application)\n- [Development](#development)\n- [Running Unit Tests](#running-unit-tests)\n- [Deployment](#deployment)\n- [Project Structure](#project-structure)\n- [Technologies Used](#technologies-used)\n- [License](#license)\n\n## Prerequisites\n\nBefore running the application, ensure you have:\n- Node.js (v18 or later)\n- OpenAI API key ([get one here](https://platform.openai.com/api-keys))\n- Access to a PostgreSQL database hosted on [Neon](https://neon.tech) (free account is sufficient)\n \n## Installation and Setup\n\n1. Clone the repository:\n   ```bash\n   git clone \u003crepository-url\u003e\n   cd \u003cproject-name\u003e\n   ```\n\n2. Install dependencies:\n   ```bash\n   npm install\n   ```\n\n3. Set up the environment variables:\n   ```bash\n   cp .env.template .env\n   ```\n\n   - Update the `.env` file with your credentials:\n     ```env\n     # Your Neon PostgreSQL connection URL\n     DATABASE_URL=postgresql://user:password@host:port/database\n\n     # Your OpenAI API key\n     OPENAI_API_KEY=sk-...\n     \n     # Server port (optional, defaults to 5001)\n     PORT=5001\n     ```\n     The `DATABASE_URL` is the connection URL to a fresh PostgreSQL database served by Neon.\n     The URL can be found in project's Quickstart tab after creation of a new project on Neon.\n\n   - This file is read via the npm scripts defined in [package.json](./package.json)\n      instead of `dotenv` for some technical reasons\n   - `.gitignore` is configured to ignore this file to prevent accidental commits of the credentials\n   - As to the server port, $5001$ is used instead of $5000$, which is used by macOS for AirPlay Receiver\n\n4. Set up the database:\n   ```bash\n   npm run db:push\n   ```\n\n## Development\n\nTo start the development server:\n\n```bash\nnpm run dev\n```\n\nThis will start both the frontend and backend servers on port $5001$.\nHot Module Replacement (HMR) is enabled for both frontend and backend.\n\n## Running Unit Tests\n\nThe project uses Vitest for both frontend and backend testing. Tests are organized into separate directories for client and server components.\n\n### Frontend Tests\nTo run frontend tests:\n```bash\nnpm run test:client\n# or run in watch mode\nnpm run test:client:watch\n```\n\n### Backend Tests\nTo run backend tests:\n```bash\nnpm run test:server\n# or run in watch mode\nnpm run test:server:watch\n```\n\n### Test Coverage\nTo generate test coverage reports:\n```bash\nnpm run test:coverage\n```\n\n## Deployment\n\nThis application supports deployment on various platforms including Replit, Heroku, AWS, and Docker.\nFor detailed platform-specific deployment instructions and comprehensive verification steps, please refer to [docs/DEPLOYMENT.md](docs/DEPLOYMENT.md).\n\nGeneric deployment steps:\n\n1. Ensure [Prerequisites](#prerequisites)\n\n2. Build for Production:\n   ```bash\n   npm run build\n   ```\n\n3. Start the Application:\n   ```bash\n   npm start\n   ```\n\n## Project Structure\n\n```\n├── client/                # Frontend React application\n│   ├── src/\n│   │   ├── components/   # React components\n│   │   ├── hooks/        # Custom React hooks\n│   │   ├── pages/        # Page components\n│   │   └── types/        # TypeScript type definitions\n├── server/               # Backend Express server\n│   ├── routes.ts        # API routes\n│   ├── auth.ts          # Authentication logic\n│   └── openai.ts        # OpenAI integration\n└── db/                  # Database schemas and migrations\n```\n\n## Technologies Used\n\n- **Frontend**\n  - [React](https://react.dev/) with [TypeScript](https://www.typescriptlang.org/)\n  - [Tailwind CSS](https://tailwindcss.com/) for styling\n  - [Shadcn UI](https://ui.shadcn.com/) components\n  - [TanStack Query](https://tanstack.com/query/latest) for state management\n  - [KaTeX](https://katex.org/) for LaTeX rendering\n  - [Lucide React](https://lucide.dev/guide/packages/lucide-react) for icons\n  - [Wouter](https://github.com/molefrog/wouter) for routing\n\n- **Backend**\n  - [Node.js](https://nodejs.org/) with [Express](https://expressjs.com/)\n  - [PostgreSQL](https://www.postgresql.org/) database\n  - [Drizzle ORM](https://orm.drizzle.team/) for database management\n  - [OpenAI API](https://platform.openai.com/docs/introduction) integration\n\n## License\n\nThis project is licensed under the MIT License - see [the LICENSE file](LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhideya%2Ftest-chatly-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhideya%2Ftest-chatly-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhideya%2Ftest-chatly-ai/lists"}