Datawise Internship Assessment –
Frontend or Backend Developer
Instructions
This assessment is designed to evaluate your problem-solving, code quality, and
understanding of real-world application development.
Please read the requirements for both frontend and backend sections.
• If you're applying for the Frontend Developer Intern role, complete Part 1 (you do
not need to build a backend but must integrate with mock APIs).
• If you're applying for the Backend Developer Intern role, complete Part 2, and
optionally build a minimal frontend or use Postman to demonstrate your endpoints.
• If you're confident working on both, you're welcome to complete both parts!
You’ll have 7 days to complete and submit your solution via a public GitHub repository.
Part 1: Frontend (for Frontend Developer Intern applicants)
Objective
Build a responsive dashboard UI using React and TypeScript, with real API integrations
(mock APIs are fine).
Requirements
• A sidebar with navigation: Dashboard, Users, Settings
• A dashboard view that includes:
o A bar chart (static or mock API)
o A user activity table populated via a GET API call
o A form with at least 3 fields that submits data via a POST API call
• Use React Router for routing
• Use Axios or Fetch to make actual API requests
• Manage state using Context API or local component state
• Handle loading and error states
API Integration Notes
• You are not expected to build a backend.
• You must use a real mock API service (not hardcoded data).
o You can use:
▪ MockAPI.io
▪ JSONPlaceholder
▪ Reqres.in
▪ Or a local tool like json-server
• If you're using a local mock server, include setup instructions in your README.
Part 2: Backend (for Backend Developer Intern applicants)
Objective
Build a simple backend API using Python, Flask, and MongoDB. The project simulates a
lightweight Dataset Catalog where users can manage datasets and track quality logs, all
stored in MongoDB.
Requirements
• Tech Stack: Python 3.10+, Flask 2.x, MongoDB (using PyMongo or Motor),
Optional: Pydantic or Marshmallow for validation, pytest for testing
Features to Build:
MongoDB collections
• datasets:
o _id (ObjectId)
o name, owner, description
o tags: list of strings
o created_at, updated_at, is_deleted (boolean for soft delete)
• quality_logs:
o _id (ObjectId)
o dataset_id (refers to a dataset)
o status (PASS or FAIL)
o details
o timestamp
API Endpoints
Method Route Description
POST /datasets Create a new dataset
GET /datasets List all datasets (with optional filters: owner, tag)
GET /datasets/<id> Get details of a dataset
PUT /datasets/<id> Update a dataset
DELETE /datasets/<id> Soft delete a dataset
POST /datasets/<id>/quality-1 Add a quality log
GET /datasets/<id>/quality-1 View quality logs for a dataset
Project Guidelines
• Organize code into: routes/, services/, models/, and utils/ folders
• Keep business logic separate from route handlers
• Return proper status codes and error messages
• Include at least 2 meaningful pytest test cases
• Auto-generate API docs using Swagger / Flasgger
• Include a README.md with:
o Setup instructions
o Example API requests (curl or Postman)
Final Project Deliverables
• A public GitHub repo with:
o /frontend and/or /backend folders
o A README.md including:
▪ Setup instructions
▪ Overview of features
▪ Assumptions made
▪ Libraries/tools used
• (Optional) Hosted frontend demo link
Deadline
Submit your GitHub link within 7 days of receiving this assessment to below email.
Good luck! Feel free to ask questions if needed ([email protected]).
Please note: only candidates qualifying to the next round will be contacted.