0% found this document useful (0 votes)
33 views3 pages

Backend Dev Midlevel Task Google Docs

The document outlines the development of a backend service for a resume builder using TypeScript, which allows users to input personal details, education, and work experience to generate a PDF resume. Key features include PDF generation, cloud storage integration, and API endpoints for generating and retrieving resumes. Additional requirements involve error handling, a tech stack of NodeJs, Express, MongoDB, and TypeScript, with a deadline for completion before December 10th.

Uploaded by

auric266
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views3 pages

Backend Dev Midlevel Task Google Docs

The document outlines the development of a backend service for a resume builder using TypeScript, which allows users to input personal details, education, and work experience to generate a PDF resume. Key features include PDF generation, cloud storage integration, and API endpoints for generating and retrieving resumes. Additional requirements involve error handling, a tech stack of NodeJs, Express, MongoDB, and TypeScript, with a deadline for completion before December 10th.

Uploaded by

auric266
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

‭Task: Build a Resume Builder and Storage Service (TypeScript)‬

‭ ou are tasked with creating a backend service that allows users to create a dynamic resume by‬
Y
‭submitting their details. The system will generate a‬‭PDF resume‬‭based on the user’s input and store‬
‭the resume in a cloud storage system (e.g., AWS S3 or Google Cloud Storage). The service will also‬
‭allow the user to retrieve the link to download their generated resume.‬

‭Core Features‬
‭ . Resume Data Input‬
1
‭The user will submit their personal information, education, and work experience, which will be used to‬
‭generate the resume. The following fields should be included in the resume:‬

‭‬ P
● ‭ ersonal Information‬‭: name, email, phone, address‬
‭●‬ ‭Education‬‭: List of degrees, institutions, and years‬‭attended.‬
‭●‬ ‭Work Experience‬‭: Job titles, companies, and years‬‭worked.‬

‭ . PDF Resume Generation‬


2
‭The system must generate a‬‭PDF resume‬‭based on the‬‭provided data. Example structure:‬

‭●‬ ‭Personal Information‬‭:‬


‭●‬ ‭Name: John Doe‬
‭●‬ ‭Email: [email protected]
‭●‬ ‭Phone: 1234567890‬
‭●‬ ‭Address: 123 Main St, City, Country‬
‭●‬ ‭Education‬‭:‬
‭●‬ ‭Degree: BSc Computer Science‬
‭●‬ ‭Institution: XYZ University‬
‭●‬ ‭Year: 2020–2024‬
‭●‬ ‭Work Experience‬‭:‬
‭●‬ ‭Job Title: Software Developer‬
‭●‬ ‭Company: ABC Corp‬
‭●‬ ‭Years: 2022–Present‬
‭●‬ ‭Use a PDF generation library; e.g.,‬‭Puppeter, pdfkit or jsPDF‬

‭3. API to Generate Resume‬

‭‬
● I‭mplement an API endpoint that accepts the resume data and generates a PDF.‬
‭●‬ ‭Endpoint: POST /generate-resume‬
‭●‬ ‭Request Body‬‭: json‬
‭●‬ ‭Example:‬
‭●‬ ‭{‬
‭‬
● ‭"name": "John Doe",‬
‭●‬ ‭"email": "[email protected]",‬
‭●‬ ‭"phone": "1234567890",‬
‭●‬ ‭"address": "123 Main St, City, Country",‬
‭●‬ ‭"education": [‬
‭●‬ ‭{‬
‭●‬ ‭"degree": "BSc Computer Science",‬
‭●‬ ‭"institution": "XYZ University",‬
‭●‬ ‭"year": "2018–2022"‬
‭●‬ ‭}‬
‭●‬ ‭],‬
‭‬
● ‭"workExperience": [‬
‭●‬ ‭{‬
‭●‬ ‭"jobTitle": "Software Developer",‬
‭●‬ ‭"company": "ABC Corp",‬
‭●‬ ‭"years": "2022–Present"‬
‭●‬ ‭}‬
‭●‬ ‭]‬
‭●‬ ‭}‬

‭●‬ R
‭ esponse‬‭: The system should return a URL to download the PDF once it is generated and‬
‭stored.‬

‭●‬ ‭{‬
‭ ‬ ‭"message": "Resume generated successfully.",‬

‭●‬ ‭"downloadUrl": "https://your-cloud-storage.com/path/to/generated-resume.pdf"‬
‭●‬ }‭ ‬
‭●‬

‭4. Store User Data in Database‬

‭●‬ A ‭ fter generating the PDF,‬‭store the user’s data‬‭(personal information, education,‬
‭work experience) in a database (e.g., MongoDB).‬
‭●‬ ‭Create a collection called users or resumes with the following fields:‬
‭●‬ ‭userId (unique identifier)‬
‭●‬ ‭name, email, phone, address‬
‭●‬ ‭education (array of degrees, institutions, and years)‬
‭●‬ ‭workExperience (array of job titles, companies, and years)‬
‭●‬ ‭resumeUrl (URL to the stored PDF in cloud storage)‬
‭●‬ ‭5. Cloud Storage Integration‬
‭●‬ ‭After generating the PDF,‬‭upload the resume PDF to‬‭cloud storage‬‭(AWS S3 or‬
‭Google Cloud Storage).‬
‭●‬ ‭Store the file with a unique name (e.g., userId_resume.pdf).‬
‭●‬ ‭Provide a public URL for the user to download the resume.‬
‭ ‬ ‭6. Retrieve Resume Link‬

‭●‬ ‭Provide an endpoint for the user to retrieve the generated resume link.‬
‭●‬ ‭Endpoint: GET /resume/{userId}‬
‭●‬ ‭Response‬‭: json‬
‭●‬ ‭{‬
‭●‬ ‭"downloadUrl":‬
‭"https://your-cloud-storage.com/path/to/generated-resume.pdf"‬
‭●‬ ‭}‬

‭Technical Requirements‬

‭1.‬ ‭PDF Generation Library‬


‭●‬ ‭Use Puppeter, pdfkit or jsPDF to generate the PDF resume dynamically.‬
‭2.‬ ‭Cloud Storage Integration‬
‭●‬ ‭Use AWS S3 or Google Cloud Storage to store the generated PDF resume.‬
‭●‬ ‭Ensure the file is uploaded with a unique name based on the user ID (e.g.,‬
‭userId_resume.pdf).‬
‭3.‬ ‭API Design‬
‭●‬ ‭Provide clear and simple API endpoints to generate the resume PDF and‬
‭retrieve its URL.‬
‭4.‬ ‭Error Handling‬
‭●‬ ‭Handle errors gracefully, such as:‬
‭i.‬ ‭Validate fields in the request body.‬
‭ii.‬ ‭Cloud storage upload failure.‬
‭5.‬ ‭Tech stack‬
‭●‬ ‭NodeJs, Express, MongoDb, TypeScript‬

‭Bonus Features‬

‭1.‬ ‭Download PDF with Customization‬


‭●‬ ‭Allow users to customize the layout (e.g., choose a theme or add a photo).‬
‭2.‬ ‭Email Notification‬
‭●‬ ‭Send an email to the user with the resume download link once it’s generated.‬
‭●‬

‭Deadline: Before December 10th.‬

‭Submission:‬

‭1.‬ ‭Codebase‬
‭●‬ ‭A GitHub repository with a single codebase‬
‭●‬ ‭A README.md file with instructions for setting up the project.‬
‭2.‬ ‭API Documentation‬
‭●‬ ‭Provide documentation for the POST /generate-resume and GET‬
‭/resume/{userId} endpoints using Swagger/OpenAPI, Postman or githubdocs.‬

‭●‬ T
‭ his simplified resume builder task focuses on generating a PDF resume and storing it‬
‭in cloud storage, which covers key backend skills like PDF generation, API‬
‭development, and cloud storage integration, all within a manageable scope.‬

‭●‬ F
‭ or every point, you will earn a score. Try to cover all the points to achieve an‬
‭awesome score.‬

You might also like