Responsive Dashboard Assignment
Responsive Dashboard Assignment
Responsibilities:
1. User Authentication:
- Implement secure login functionality using email-password
authentication or third-party tools (e.g., Google, GitHub OAuth).
4. Responsive Design:
- Build a fully responsive UI compatible with both mobile and
desktop devices.
5. Payout Calculator:
- Allow admins to set a payout per article/blog value.
- Store payout data in local storage.
- Automatically calculate total payouts based on the number of
articles/blogs and their rates.
6. Export Functionality:
- Enable users to export payout reports as:
- PDF
- CSV
- Google Sheets integration.
1. Dashboard:
- Overview of total articles/blogs fetched from the API.
- Visual representation of payouts and filters.
2. News Analytics:
- Graphical charts (e.g., bar, pie, or line charts) showing article
trends by author or type.
3. Payout Details:
- A simple table listing authors, articles, and calculated payouts.
- Inline editing for payout rates.
4. Export Options:
- Export filtered or complete data in PDF/CSV/Google Sheets format.
5. Error Handling:
- Graceful fallback for API failures (e.g., display a message if the
news API is unreachable).
Bonus Points:
- Implementing offline mode with IndexedDB or localStorage.
- Incorporating dark mode for the dashboard.
- Ensuring high Lighthouse scores for performance, accessibility, and
SEO.
Development Instructions:
1. Create a new Next.js project:
- Use the command: npx create-next-app@latest project-name
2. Folder structure:
- /pages: Contains Next.js pages (e.g., index.js, _app.js).
- /public: Static assets like images/icons.
- /src: Custom components, services, store, and utilities.
- .env.local: Environment variables for API keys and configurations.