0% found this document useful (0 votes)
235 views

DataGrokr-Software Development Internship Assignment

This document provides instructions for a technical assignment for a software development internship at DataGrokr. Applicants are asked to build a simple website with a form to collect contact information and store it either in a database or local file, using React/Angular for the front-end and Node/Python/Java/C# for the back-end. Applicants must use a repository pattern for data storage and are encouraged to containerize the application and include unit tests. The deliverables are source code, README, documentation, and resume. Submissions are due by February 14th via a shared Google Drive folder link.
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)
235 views

DataGrokr-Software Development Internship Assignment

This document provides instructions for a technical assignment for a software development internship at DataGrokr. Applicants are asked to build a simple website with a form to collect contact information and store it either in a database or local file, using React/Angular for the front-end and Node/Python/Java/C# for the back-end. Applicants must use a repository pattern for data storage and are encouraged to containerize the application and include unit tests. The deliverables are source code, README, documentation, and resume. Submissions are due by February 14th via a shared Google Drive folder link.
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
You are on page 1/ 5

Hi,

Thank you for your interest in the Software Development Internship at DataGrokr.

DataGrokr provides solutions to our global clients in the fields of Cloud enablement, IT
Automation (DevOps), data management and Big Data Analytics. We work on several different
technologies and we must adapt very quickly to our client demand.

Learning agility and ability to deal with new technologies on the fly is a must-have requirement
to succeed at DataGrokr. It is a great place if you love challenges.

As such, our selection process is geared to identify candidates who will enjoy this type of
work and thrive in this environment. As a part of our selection process, we ask interested
candidates to complete a technical assignment.

The details for the technical assignment are provided in the attached document. The
document contains detailed instructions on what you need to do as well as the
deliverables expected.

Your submissions are due to us by the end of the day February 14th, 2022. Based on your
submissions, we will shortlist some candidates and schedule Google Meet/Skype interviews in
the following week. Good luck and we hope you enjoy the assignment and learn something new
in the process.

Thanks,
DataGrokr
Team.
Introduction:

As a Software Developer you will be working on application development projects to


build large scale applications in a Cloud environment. You will be expected to have deep
skills in backend and frontend development programming languages and SQL and have
familiarity with at least one public Cloud (AWS, GCP, Azure).

The goal of this assignment is to assess your hands-on software development skills. In
this assignment we will be gauging your proficiency in carrying out application
development tasks using Python/Java/C#/Nodejs and React/Angular.

As a part of this assignment, you will be building a simple web page with a form to fill
contact information and persist the data in database or local storage. There should also
be a toggle to select the data persistence medium.

Apart from the functional requirements, we will be assessing your code based on good
programming practices (modular code, good naming standards, etc.) and your adherence
to the instructions provided.

Problem statement:
● Create a simple website for storing contact information.
● Users should be able to fill a form with their contact details and select the
storage medium of the information.
● The information should either be stored in a database or in a local file.

Expected functionality:
● A form to fill up contact information.
● Users can fill the form and submit it to store in the backend.
● Form validation like phone numbers, zip-code, etc.
● Users should be able to toggle between two storage mediums (Database and
Local file) for the contact information using a drop-down list or toggle button.
● NOTE: There are no design constraints with the look and feel. Evaluation will
not consider the UI/UX as long as it has minimal consistency.
Mockup:

NOTE:

● The above mockup is only meant to serve as a reference, strict adherence to


these UI/UX guides is not mandatory.
● Please use your intuition to add more UI elements as you see fit.

UI workflow:
● User opens the website and is greeted with the contact information page
consisting of a form.
● Users should be able to toggle between the storage medium of the information
filled in the form.
● Users may be able to submit their details using a submit button.
Tech stack:

● The front-end website needs to be developed using React/Angular


● The backend need to be developed using Node/Python/Java/C#.
● Feel free to use any relational database engine.
● Repository pattern should be used for the data storage layer in the code. In this
case, the repository pattern should be used to select the persistence layer i.e. a
database or local file.
● Follow the links given below to learn more about repository patterns.
https://martinfowler.com/eaaCatalog/repository.html
https://hannesdorfmann.com/android/evolution-of-the-repository-pattern/
https://docs.microsoft.com/en-us/dotnet/architecture/microservices/microservice
-ddd- cqrs-patterns/infrastructure-persistence-layer-design
● Demonstration of usage of Repository Pattern is mandatory for the assignment.

Extra Credit:
It is good, but not mandatory, to have the following:
● Containerize the website, server and the database using Docker.
● Unit test cases.

Deliverables:
To make it easy for both you to submit your assignment, and for us to evaluate it
quickly, we urge you to keep these in mind when turning in your submission:

● The main deliverables are the source code (following proper hierarchy), a nice
● README file describing how to run your application (including the commands), and brief
documentation (docx/pdf) describing the technical aspects of your app.
● Your up to date resume, named as Firstname_Lastname.pdf
● Put all these in a folder, upload this folder to Google Drive, and share the link
(choose the option of view access to anyone who has the link) to this folder
with us in your submission email.
● Please send all your submissions to [email protected] on or before midnight
February 14th, 2022.
● The subject of the email should be “ Internshala_Software Development Internship: First
Name Last Name:"
● In the body, please include the link to the Google Drive folder
including all deliverables.
● PLEASE DO NOT SEND ANY DELIVERABLES AS ATTACHMENTS, OR SEND ZIP/RAR/7Z
ARCHIVE FILES.
● IN CASE YOUR SUBMISSION USES JAVASCRIPT/TYPESCRIPT, PLEASE DO NOT UPLOAD
THE NODE_MODULES FOLDER THAT GETS CREATED AT THE DIRECTORY CONTAINING
PACKAGE.JSON
Help:
While attempting the assignment, should you have any questions, please drop a
mail to [email protected] with a clear description of the issue/question.
Please mention the subject line of the email as
“Internshala_Software Development Internship: Need help” to get a timely
response. Please remember to Google the issue/question before asking us!

Caution on copying assignments:


If we find any two assignments to be similar, we will disqualify both the applications.
Please do not share your assignments with your friends or store them on public repos like
Github and risk getting disqualified.

Good luck and we hope you learn something new in this process!

You might also like