Student Chat is a modern, full-stack chat application designed specifically for students. Built with Flutter for the frontend and Node.js with TypeScript for the backend, this application provides a seamless and secure communication platform for educational purposes.
- 🔐 Secure Authentication System
- 💬 Real-time Chat Functionality
- 👤 User Profile Management
- 🎨 Modern Material Design 3 UI
- 📱 Cross-platform Support (iOS, Android, Web)
- 🔄 State Management with BLoC Pattern
- 🛡️ Type-safe Development with TypeScript
- 🗄️ Database Management with Prisma
- Framework: Flutter
- State Management: Flutter BLoC
- UI Components: Material Design 3
- Key Features:
- Responsive Design
- Clean Architecture
- Dependency Injection
- Route Management
- Runtime: Node.js
- Language: TypeScript
- Database ORM: Prisma
- Key Features:
- RESTful API
- Type Safety
- Modular Architecture
- File Upload Support
- Flutter SDK
- Node.js
- npm or yarn
- PostgreSQL Database
- Prisma CLI
- Clone the repository
git clone https://github.com/yourusername/student_chat.git- Backend Setup
cd backend
npm install
# Create .env file from example
cp .env.example .env
# Edit .env file with your configuration
# Required environment variables:
# - DATABASE_URL: PostgreSQL connection string
# - JWT_SECRET: Secret key for JWT tokens
# - PORT: Server port (default: 3000)
# - CORS_ORIGIN: Allowed origins for CORS
# - UPLOADS_DIR: Directory for file uploads
# - MAX_FILE_SIZE: Maximum file size in bytes
# Generate Prisma client
npx prisma generate
# Start the server
npm run dev- Frontend Setup
cd frontend
flutter pub get
flutter run# Server Configuration
PORT=3000
# Database Configuration
DATABASE_URL="postgresql://user:password@localhost:5432/student_chat"
# JWT Configuration
JWT_SECRET="your-secret-key"
JWT_EXPIRES_IN="24h"
# CORS Configuration
CORS_ORIGIN="*"
# File Upload Configuration
UPLOADS_DIR="uploads"
MAX_FILE_SIZE=5242880 # 5MB in bytes-
Frontend:
- Flutter
- Flutter BLoC
- Material Design 3
- Dependency Injection
-
Backend:
- Node.js
- TypeScript
- Prisma
- Express.js
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with ❤️ by [Your Name]