Q & A platform built for Ethiopian users
# FlikChat
A Q&A platform where every answer has its own real-time discussion room.
## Project Overview
FlikChat combines traditional Q&A with live discussion. Users post questions, receive answers, and each answer gets a dedicated chat room for real-time conversation between the author and community members.
This repository is a monorepo containing the frontend React application and backend Express API, structured for scalable feature development.
## Tech Stack
### Frontend
- React 18
- Vite
- TypeScript
- Tailwind CSS
- React Router
- Axios
- Socket.io Client
- TanStack Query
- Zustand
### Backend
- Node.js
- Express.js
- TypeScript
- Prisma ORM
- PostgreSQL
- JWT Authentication
- Socket.io
- Zod Validation
- bcrypt
- CORS
- Helmet
- Morgan
### Dev Tools
- ESLint
- Prettier
- Husky
- lint-staged
- dotenv
- nodemon
- tsx
## Folder Structure
```
flikchat/
├── frontend/ # React + Vite frontend
│ └── src/
│ ├── app/ # App root component
│ ├── components/ # Shared UI and layout components
│ ├── features/ # Feature-based modules
│ ├── pages/ # Route page components
│ ├── services/ # API and socket clients
│ ├── hooks/ # Custom React hooks
│ ├── context/ # React context providers
│ ├── store/ # Zustand stores
│ ├── types/ # TypeScript type definitions
│ ├── utils/ # Utility functions
│ ├── routes/ # React Router configuration
│ ├── assets/ # Static assets
│ └── styles/ # Global styles
├── backend/ # Express API server
│ ├── prisma/ # Prisma schema and migrations
│ └── src/
│ ├── config/ # Environment and database config
│ ├── controllers/ # Shared controllers
│ ├── services/ # Shared services
│ ├── repositories/ # Data access layer
│ ├── routes/ …