Fetches and displays user data, posts, and todos from the DummyJSON API
📋 Internship Assessment Project – Flutter Developer Role
🗓️ Deadline: 4th June 2025
| 🔍 | User List with Infinite Scroll & Real-time Search |
| 📄 | User Details with Posts & Todos |
| 📝 | Create Post Locally |
| 🔁 | Pull-to-Refresh Support (Bonus) |
| 🌗 | Light/Dark Theme Toggle (Bonus) |
| 💡 | Clean Architecture with flutter_bloc |
This project follows the BLoC (Business Logic Component) pattern for predictable state management and clean architecture principles.
lib/
├── 📁 models/ # Data models (User, Post, Todo)
├── 📁 services/ # API calls (UserService, PostService, TodoService)
├── 📁 cubits/ # State management using Cubits
├── 📁 screens/ # UI screens & widgets
├── 📁 constants/ # API endpoints & configuration
├── 📁 utils/ # Helper functions (debounce, etc.)
└── 📄 main.dart # App entry point with MultiBlocProvider
Powered by the DummyJSON API 🌐
| Endpoint | Purpose | Features |
|---|---|---|
/users |
List users | ✅ Pagination & Search |
/posts/user/{userId} |
User's posts | ✅ Dynamic loading |
/todos/user/{userId} |
User's todos | ✅ Interactive display |
📝 Note: Pagination handled via
limitandskipquery parameters
🔍 Search: Client-side filtering by user name for optimal performance
Built with flutter_bloc for robust state management:
| 🎯 Cubit Name | 📋 Responsibility | 🔄 States |
|---|---|---|
UserListCubit |
Fetch users, search, pagination |
• Loading • Success • Error |
UserDetailCubit |
Fetch user's posts and todos | |
PostCubit |
Add local posts | |
TodosCubit |
Local todo state management |
- Flutter 3.x 📱
- Dart 3.x ⚡
- Internet connection 🌐
-
Clone the repository
git clone https://github.com/YOUR_USERNAME/dummyconnect.git cd dummyconnect -
Install dependencies
flutter pub get
-
Run the application
flutter run
-
Format code (Optional)
flutter format .
| Limitation | Details |
|---|---|
| 📝 Local Posts | Posts are created locally and not persisted on server |
| ✅ Todo States | Todo toggle states are managed locally only |
| 💾 No Offline Cache | Planned for future improvement |
- 🔄 Pull-to-refresh on user list
- 🌓 Light/Dark theme toggle
- 🧩 Modular widgets (UserTile, PostTile, etc.)
- 📱 Responsive design for various screen sizes
This project is open for review and educational use only.
- 🎯 DummyJSON for providing an excellent free API
- 🧩 BLoC Library for powerful state management tools
- 💙 Flutter Community for continuous support and resources
Yash
CSE Student – USICT, New Delhi
🔗 GitHub: @your-username
Built with ❤️ using Flutter & BLoC


