Simple real-time chatting application
Chit-Chat is a real-time chat application that allows users to communicate instantly. The application consists of a Node.js/Express backend and a React frontend, providing a seamless and responsive user experience for real-time messaging.
- React 19
- TypeScript
- Vite (build tool)
- Redux (state management with @reduxjs/toolkit)
- Axios (HTTP client)
- WebSockets (for real-time communication)
- Material Design Icons (@mdi/react & @mdi/js)
- ESLint & Prettier (code quality)
- Node.js
- Express
- WebSockets (ws package)
- MongoDB (with Mongoose)
- Express Session (authentication)
- UUID (unique identifiers)
- Multer (file uploads)
- CORS
- Jest (testing)
- Nodemon (development)
-
backend: Node.js/Express server with WebSocket support
- controllers: API endpoint handlers
- service: Business logic
- repositories: Data access layer
- models: Data models (in-memory storage)
- tests: Test files for the backend
-
frontend: React application
- src: Source code
- public: Static assets
- Node.js - v24.3.0
- npm (v6 or higher)
- Clone the repository
- Install dependencies:
# Install root dependencies
npm install
# Install backend dependencies
cd backend
npm install
# Install frontend dependencies
cd ../frontend
npm installFrom the root directory:
# Start both backend and frontend
npm start
# Start only the backend
npm run start:server
# Start only the frontend
npm run start:clientThe backend includes a comprehensive test suite using Jest. To run the tests:
cd backend
npm testFor more detailed information about the tests, see the backend test README.
When contributing to this project, please ensure that you write tests for any new features or bug fixes. Follow the existing test patterns and organization.