A modern, scalable customer service platform built with NestJS and Angular, featuring AI-powered interactions, customer management, and multi-channel communication capabilities.
- AI-powered customer interactions
- Comprehensive customer management
- Multi-channel communication (Email, SMS, WhatsApp)
- Real-time updates with WebSocket
- Customer analytics and insights
- Role-based access control
- Multi-organization support
- Custom tools integration
- Voice call support
- WhatsApp integration
- SMS capabilities
- Knowledge base management
- Automatic responses
- Analytics dashboard
Before you begin, ensure you have the following installed:
- Node.js (v18 or higher)
- MongoDB (v4.4 or higher)
- npm or yarn
- Angular CLI (npm install -g @angular/cli)
- Clone the repository:
git clone https://github.com/gabrielelanzafamee/assistly.gitcd assistly
- Environment Setup Create .env file in the root directory with the following variables:
# Database
MONGODB_URI=mongodb://localhost:27017/your-database
# JWT
JWT_SECRET=your-secret-key
JWT_EXPIRATION=30d
# OpenAI
OPENAI_API_KEY=your-openai-api-key
OPENAI_ORGANIZATION=your-openai-organization
# Twilio
TWILIO_ACCOUNT_SID=your-twilio-sid
TWILIO_AUTH_TOKEN=your-twilio-token
TWILIO_PHONE_NUMBER=your-twilio-phone
# ElevenLabs (Optional - for voice synthesis)
ELEVEN_LABS_API_KEY=your-eleven-labs-key
# Deepgram (Optional - for real-time speech recognition)
DEEPGRAM_API_KEY=your-eleven-labs-key
# System
PORT=3000
BASE_URL=http://localhost:3000
NODE_ENV=development
- Install Dependencies
For the backend:
npm install
For the frontend:
cd publicnpm install
- Run the Application
Start the backend server:
npm run start:dev
Start the frontend application:
cd publicnpm run start
The application will be available at:
- Frontend: http://localhost:4200
- Backend API: http://localhost:5000
- API Documentation: http://localhost:5000/api/v1
src/ # Backend source code (NestJS)
├── core/ # Core functionality
│ ├── config/ # Configuration
│ ├── decorators/ # Custom decorators
│ ├── guards/ # Auth guards
│ └── interfaces/ # TypeScript interfaces
├── customers/ # Customer management
├── messages/ # Messaging system
├── calls/ # Call handling
├── openai/ # AI integration
└── websockets/ # Real-time communication
public/ # Frontend source code (Angular)
├── src/
│ ├── modules/ # Feature modules
│ ├── shared/ # Shared components
│ └── core/ # Core services
- OpenAI Setup
- Create an account at OpenAI (https://openai.com)
- Get your API key from the dashboard
- Add it to your .env file
- Twilio Setup
- Create an account at Twilio (https://www.twilio.com)
- Get your Account SID and Auth Token
- Purchase a phone number
- Add credentials to your .env file
- ElevenLabs Setup (Optional)
- Create an account at ElevenLabs (https://elevenlabs.io)
- Get your API key
- Add it to your .env file
- Deepgram Setup (Optional)
- Create an account at Deepgram (https://deepgram.com)
- Get your API key
- Add it to your .env file
We welcome contributions! Here's how you can help:
- Fork the repository
- Create your feature branch (git checkout -b feature/AmazingFeature)
- Commit your changes (git commit -m 'Add some AmazingFeature')
- Push to the branch (git push origin feature/AmazingFeature)
- Open a Pull Request
Please ensure your PR adheres to our coding standards and includes appropriate tests.
Backend tests:
npm run testnpm run test:e2e
Frontend tests:
cd publicng test
API documentation is automatically generated using Swagger and is available at http://localhost:5000/api/v1 when running the development server.
- JWT authentication
- Role-based access control
- Organization-level data isolation
- Input validation
- Rate limiting
- CORS protection
This project is licensed under the MIT License - see the LICENSE file for details.
If you find this project useful, please give it a star on GitHub!
For questions and support:
- Open an issue
- NestJS (https://nestjs.com/) - The backend framework
- Angular (https://angular.io/) - The frontend framework
- OpenAI (https://openai.com/) - AI capabilities
- Twilio (https://www.twilio.com/) - Communication services
- ElevenLabs (https://elevenlabs.io/) - Voice synthesis
- MongoDB (https://www.mongodb.com/) - Database
- All our amazing contributors!
- NestJS Documentation: https://docs.nestjs.com/
- Angular Documentation: https://angular.io/docs
- OpenAI API Documentation: https://platform.openai.com/docs/
- Twilio Documentation: https://www.twilio.com/docs