Challenge: Create a real-time Chat Application that allows users to send messages and engage in group chats. Use any front-end libraries of your choice. Create your API.
Follow the instructions below:
- User registration and login 
- Create and join chat rooms 
- Send and receive real-time messages 
- Display online/offline status of users 
- Implement typing indicators 
- Enable file/image sharing in chats 
- Implement message search functionality 
- Admin panel to manage users and chat rooms 
- Implement user authentication and authorization