Web Development Task – Content Platform Page
Objective:
Design and develop a beautiful, responsive Content Platform Page that showcases a list of
publications fetched from a public API. The goal is to simulate a modern, content-rich platform (like
Medium, Dev.to, or Substack) with great user experience, interactivity, and clean design.
Scope of Work
1. Data Source (Use a Public API):
Use any publicly available API that offers article-like content. Some options include:
News API
Dev.to API
NY Times API
Reddit JSON Feed (can be parsed easily)
Medium RSS to JSON (optional)
Core Features to Implement
1. Publications List View
o Display articles with title, summary, image (if available), author, publish date.
o Pagination or infinite scroll (optional but nice to have).
2. Search
o Real-time search/filter across titles or content snippets.
3. Filters
o Filter by date range, author, source, or any metadata available in the chosen API.
4. Categories/Topics
o Show a section with a list of categories or tags.
o Clicking on one should filter the content accordingly.
5. UI/UX
o Clean, modern, responsive design (inspired by platforms like Medium, Dev.to, etc.)
o Use a component library (e.g., Tailwind, Material UI) or custom-styled components.
o Animations and hover effects are a plus.
6. Bonus (Optional)
o Save articles to favorites (localStorage is fine).
o Dark/light theme toggle.
o Detail view on article click (open in modal or dedicated route).
Tech Requirements
Frontend Stack: React.js (preferred), Vue or Angular also acceptable.
API Integration: Fetch data from selected public API (can use Axios or Fetch).
Code Quality: Clean, modular, and readable code (bonus for TypeScript).
Styling: Tailwind CSS, Material UI, Chakra UI, or custom CSS.
Submission Guidelines
Share a GitHub repository with the project.
Provide a README with:
o Demo link (if deployed).
o API used.
o Instructions to run the project locally.
Timeline
Please complete the task within 2-days of receiving it. If you're unable to meet the timeline due to
some issues, just let us know, and for any confusion or more information reply to this email.