Company Description - ONLY APPLY IF YOU CAN DO A TECHNICAL ASSESSMENT WITH AGORA - ASSESSMENT IS AT BOTTOM.
C4D India Technology specializes in creating digital brands that resonate with your audience, reflecting your company's ethos and values. We provide comprehensive digital solutions, including logo design, web presence, e-commerce sites, email marketing, and social media strategies. Our goal is to evoke positive emotions throughout the customer journey. With a robust portfolio and a dedicated team, we are committed to bringing your brand to life in the digital world.
Salary - 25-45k (INR)
Role Description
This is a full-time on-site role for a Flutter Developer located in Mohali district. As a Flutter Developer, you will be responsible for developing and maintaining mobile applications using the Flutter framework. You will collaborate with cross-functional teams to define, design, and ship new features. Daily tasks include writing clean and efficient code, troubleshooting and debugging applications, and ensuring the performance, quality, and responsiveness of applications.
Must be able to code fast whilst maintaining clean code. This is a fast paced role.
Successful applicants will be required to do a technical assessment. Do not apply if you are not going to do this.
Qualifications
Salary - 25-45k (INR) DOE
- Strong understanding of mobile app development in flutter MUST
- Flutter and mobile application development. MUST
- Dart language MUST
- Firesbase and restAPIs. MUST
- 1-2 years experience. Salary DOE.
- Experience in Back-End Web Development and Object-Oriented Programming (OOP)
- Proficiency in Software Development and Programming
- Experience with the Flutter framework and Dart programming language
- Ability to work collaboratively in a team environment
- Excellent problem-solving skills and attention to detail
- Bachelor's degree in Computer Science, Engineering, or related field
TECHNICAL ASSESSMENT AS BELOW: Flutter Developer Assignment
Assignment: One-to-One Video Calling with Background Notification
Objective.
Build a Flutter application demonstrating one-on-one video call functionality using Agora, where:
- One user can initiate a video call to another user.
- The caller receives a ringing call notification, even if the app is closed or in the background.
- The call can be accepted or rejected via the notification or a call screen.
Key Requirements
1. User Setup
- Create a simple interface to simulate User A and User B (can be hardcoded).
- Each user should have a unique identifier (e.g., user ID or username).
2. Video Calling with Agora
- Integrate Agora RTC Engine for video calling.
- Support:
- Initiating a call
- Receiving a call
- Accepting/rejecting a call
- Video and audio streams
- Ensure proper permissions handling (camera, microphone).
3. Background Notification & Call Handling
Flutter Developer Assignment
- Use Firebase Cloud Messaging (FCM) or a similar solution to receive call notifications.
- If the app is closed or in background:
- Show a call notification screen, similar to WhatsApp.
- Allow user to Accept or Decline the call from the notification.
- Once accepted, app should launch into the video call interface.
4. Call UI
- Display both local and remote video streams.
- Include options to:
- Mute/unmute
- End call
- Switch camera
5. State Management & Call Flow
- Manage call states: Idle, Calling, Ringing, Connected, Ended.
- Ensure call states are synchronized for both users.
Deliverables
- A complete Flutter project (GitHub link or zipped file).
- README.md that includes:
- Setup instructions
- Agora and FCM configuration
- How to test with two users (can be two devices/emulators)
- Explanation of background call handling logic
Flutter Developer Assignment
Tools & Dependencies (Suggested)
- Flutter (latest stable version)
- Agora RTC Engine SDK (agora_rtc_engine)
- Firebase Cloud Messaging
- flutter_callkit_incoming / awesome_notifications
- Shared Preferences or local DB for session/user state
Suggested Timeframe
- 3-5 days to complete the assignment
Bonus Points
- Handle network disconnection and reconnection gracefully.
- Implement in-app call logs.
- Polish UI similar to WhatsApp or Messenger.
MUST SEND CODE AND VIDEO DEMONSTRATION
