The Loopdesk Social Media Scheduler is a modern application for managing and scheduling posts across multiple platforms (YouTube, TikTok, LinkedIn, Facebook, Instagram, and X). This challenge will test your ability to contribute meaningful features to this React + TypeScript application.
To qualify for submission, you must complete tasks totaling at least 5 points.
You can mix and match features from different difficulty levels to reach 5 points. For example:
- 1 Hard feature (5 points) β
- 1 Medium + 1 Easy feature (3 + 2 = 5 points) β
- 2 Medium features (3 + 3 = 6 points) β
- 1 Medium + 2 Easy features (3 + 2 + 2 = 7 points) β
E1. Dark Mode Toggle
- Implement a dark mode toggle in the application header
- Persist user preference in localStorage
- Update the entire UI to support both light and dark themes
- Tests Required: Toggle functionality, localStorage persistence, theme application
E2. Post Character Counter
- Add a character counter for post content that shows platform-specific limits
- Display warning when approaching limit (90%)
- Show error state when limit exceeded
- Platform limits: Twitter/X (280), LinkedIn (3000), Facebook (63,206), Instagram (2,200)
- Tests Required: Counter accuracy, limit validation, warning/error states
E3. Export Scheduled Posts to CSV
- Add functionality to export all scheduled posts to a CSV file
- Include columns: Date, Time, Platform, Content, Status
- Add an "Export" button in the calendar view
- Tests Required: CSV generation, data accuracy, download functionality
E4. Search and Filter Posts
- Implement search functionality to filter posts by content
- Add filter dropdowns for platform and status (scheduled, published, draft)
- Display filtered results in real-time
- Tests Required: Search accuracy, filter combinations, empty state handling
M1. Bulk Post Scheduling
- Create a form to upload multiple posts via CSV
- Parse CSV and validate data (date, time, platform, content)
- Display preview of posts before confirming
- Add all valid posts to the scheduler
- Tests Required: CSV parsing, data validation, bulk insertion, error handling
M2. Post Templates Library
- Create a templates feature where users can save frequently used post formats
- Implement CRUD operations for templates (Create, Read, Update, Delete)
- Allow users to apply templates when creating new posts
- Support template variables like {DATE}, {PLATFORM}, {USERNAME}
- Tests Required: Template CRUD operations, variable substitution, template application
M3. Hashtag Suggestions
- Build a hashtag suggestion feature based on post content
- Create a predefined library of trending hashtags by category (tech, business, lifestyle, etc.)
- Suggest relevant hashtags as user types
- Allow users to add/remove suggested hashtags
- Tests Required: Suggestion algorithm, hashtag insertion, category filtering
M4. Post Preview for Different Platforms
- Create a preview component that shows how the post will look on different platforms
- Include platform-specific styling (character limits, image dimensions, hashtag display)
- Support preview for at least 3 platforms (Twitter/X, LinkedIn, Instagram)
- Tests Required: Preview rendering, platform-specific formatting, responsive design
M5. Notification System
- Implement a notification center for important events
- Notify users when: post is published, scheduled post is coming up (1 hour before), errors occur
- Store notifications in state/localStorage
- Add mark as read/unread functionality
- Tests Required: Notification creation, storage, read/unread toggle, notification display
H1. Drag-and-Drop Calendar Rescheduling
- Implement drag-and-drop functionality in the calendar view
- Allow users to drag posts to different dates/times
- Update post schedule when dropped
- Add visual feedback during drag (ghost image, drop zones)
- Handle edge cases (invalid drops, overlapping posts)
- Tests Required: Drag-and-drop logic, schedule updates, validation, edge cases, accessibility
H2. AI-Powered Content Suggestions
- Integrate a content suggestion feature using a public AI API (e.g., OpenAI, Hugging Face)
- Generate post ideas based on user input (topic, platform, tone)
- Allow users to refine suggestions with parameters
- Implement rate limiting and error handling
- Add loading states and retry logic
- Tests Required: API integration, error handling, rate limiting, suggestion quality, edge cases
H3. Advanced Analytics Dashboard
- Create an interactive analytics dashboard with multiple metrics
- Implement charts for: Posts over time, Platform distribution, Best posting times, Engagement trends
- Add date range selector (last 7 days, 30 days, custom range)
- Calculate and display key metrics (average engagement, top-performing platform, etc.)
- Make charts interactive (hover tooltips, click to filter)
- Tests Required: Data calculations, chart rendering, date filtering, metric accuracy, edge cases
H4. Multi-User Collaboration
- Implement a collaborative workspace where multiple users can work together
- Add user roles: Admin (full access), Editor (create/edit posts), Viewer (read-only)
- Implement permission checks throughout the application
- Add activity log showing who created/edited posts
- Store collaboration data in localStorage with user simulation
- Tests Required: Role-based access control, permission validation, activity logging, user switching
H5. Recurring Post Scheduler
- Build a feature to schedule recurring posts
- Support patterns: Daily, Weekly (select days), Monthly (select date), Custom intervals
- Allow users to set start date, end date, or number of occurrences
- Generate individual post instances from recurring pattern
- Implement edit options: "Edit this instance" vs "Edit all future instances"
- Tests Required: Pattern generation, instance creation, edit propagation, validation, edge cases
-
Code Quality
- Clean, readable, and well-organized code
- Follow existing code style and project structure
- TypeScript types properly defined
- No console errors or warnings
-
Testing
- Write comprehensive tests for all implemented features
- Use React Testing Library and Jest (or Vitest)
- Minimum 80% code coverage for your features
- Include unit tests and integration tests
-
Documentation
- Update README.md with your features
- Add inline comments for complex logic
- Include setup instructions if you add new dependencies
-
Git Workflow
- Fork the repository:
https://github.com/Loopdesk-AI/social-media-scheduler - Create a feature branch:
intern-challenge-[your-name] - Make clear, atomic commits with descriptive messages
- Submit a Pull Request to the original repository
- Fork the repository:
-
Fork and Clone
git clone https://github.com/Loopdesk-AI/social-media-scheduler.git cd social-media-scheduler -
Install Dependencies
npm install
-
Start Development
npm run dev
-
Run Tests
npm test -
Select Your Features
- Choose features totaling at least 5 points
- Create your feature branch
- Start vibe coding!
- Functionality (40%): Features work as described without bugs
- Code Quality (25%): Clean, maintainable, follows best practices
- Testing (20%): Comprehensive tests with good coverage
- UI/UX (10%): Intuitive and visually consistent with existing design
- Documentation (5%): Clear documentation and commit messages
- Complete features totaling at least 5 points
- Ensure all tests pass and code is linted
- Update README.md with your implemented features
- Submit a Pull Request to
https://github.com/Loopdesk-AI/social-media-scheduler - Fill out the hiring form: https://tally.so/r/VLE7rj
PR Title Format: [Intern Challenge] [Your Name] - [Total Points] points
PR Description Should Include:
- List of completed features with point values
- Total points scored
- Brief description of your approach
- Any additional notes or considerations
Submit your Pull Request within the timeframe of 10 days (Nov 26th).
Good luck! We're excited to see what you build! π