Assignment overview
Who should attempt it ?
● All applicants can attempt it even before they get an invite to submit the assignment as it
will help them do a better job of the assignment and increases chances of selection
● Please note that this role requires you to learn RoR (Ruby on Rails) which may take 5-7
days
● However submissions will be accepted only from candidates who are invited for the
assignment
Overview
Building a Social Media Post Scheduling Tool
Objective
The main objective is to design and implement a full-stack application that provides an
interface to create, manage, and schedule posts across social media platforms, specifically
focusing on X (formerly Twitter) or LinkedIn integration. The tool should enable users to draft,
edit, and schedule posts, automatically publishing them at a specified time.
Features & Functionalities:
1. Authentication: Users should be able to sign up and log in securely. The application
requires OAuth authentication, allowing users to log in using credentials from any
supported social media platform, such as LinkedIn or Twitter.
2. Post Creation and Scheduling:
a. Users should be able to draft, edit, and delete posts intended for LinkedIn.
b. Provide a scheduling feature that allows users to set a future date and time for
their posts to be published automatically on LinkedIn.
c. Display a list of scheduled and previously published posts for users to manage
their content easily.
3. Post to LinkedIn/Twitter:
a. Integrate LinkedIn’s API to enable users to publish posts directly from the tool.
b. Handle OAuth 2.0 for LinkedIn/Twitter to post on behalf of the user, ensuring
proper authentication and API calls.
4. Database: Use an RDBMS database ( PostgreSQL, MySQL ) to store user information,
post metadata, and scheduling details.
5. Deployment: Deploy the application on a free service like Render, Railway, or Heroku to
make it accessible online.
Tech Requirements
1. The application should be built using Ruby on Rails(ample resources available online to
pick it up in 5-7 days).
2. Deploy the application
3. Include Unit Tests and Integration Tests as well to make the application robust and
reliable.
4. Do a thorough documentation on
a. Setting up the Application to run on local
b. User Guide for using the Application
c. Technical Decisions - Architecture, Design and Implementation.
Deliverables:
1. Development Process:
○ You should follow Agile Methodologies during the development of this project.
○ You should plan your entire project into milestones and issues
○ Each issue ( or ticket ) will be assigned with story points
○ Every ticket should be resolved through a PR or a Spike Document.
○ Each PR should contain Unit Tests and System Tests whenever needed.
2. Codebase:
○ Full source code of the application with appropriate documentation.
○ Clear and concise [Link] explaining how to set up, run, and deploy the
application.
3. Documentation:
○ Technical documentation detailing the architecture, design decisions, and
implementation.
○ User guide for employees explaining how to use the application.
4. Presentation:
○ A presentation (e.g., PowerPoint, Google Slides) summarizing the project.
○ Include an overview, architecture, key features, and a live demo (or recorded
video) of the application.
Evaluation Criteria:
1. Functionality:
○ Completeness of implemented features
○ User experience and ease of use.
2. Code Quality:
○ Code readability, structure, and adherence to best practices.
○ Effective use of design patterns.
3. Scalability and Security:
○ Handling of edge cases and error scenarios.
4. Deployment:
○ Deploy your application somewhere so users can access it.
5. Documentation and Presentation:
○ Clarity and thoroughness of the provided documentation.
○ Effectiveness of the presentation in conveying the project’s value and
functionality.
Submission Guidelines
1. Repository Setup:
○ The code should be pushed to a github repository
i. Github Repository should be kept private.
ii. We are serious about plagiarism, so DO NOT copy and paste from the
internet.
iii. If you are found using other’s code, both submissions will be discarded.
○ Ensure the repository is well-organized and follows standard conventions for
ease of navigation and understanding.
○ Give access for the repositories to techjobs@[Link]
2. Submission:
○ Once you have completed the assignment, you need to upload the same at the
following link : Submission Link
○ Last date to submit the assignment is same as that listed on your invite sent in
your eLitmus account (attempt only after confirming against the invite that you will
be submitting the assignment)
○ Submit the live application link and Git repository link containing the complete
code and documentation.
○ Ensure the repository is public or provide access to the reviewers.
○ Ensure the code is entirely your own. Any instance of code plagiarism will result
in the assignment being discarded.
For any queries, please email techjobs@[Link]