0% found this document useful (0 votes)
15 views11 pages

SIRE Report

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)
15 views11 pages

SIRE Report

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/ 11

Internship Report

FP4907- Summer Industrial Research Experience

Guided by: Dr. Madhuresh Dwivedi

Name: Sudesha T R

Roll Number: 121FP084

Organization: CodePaathshala

Duration: 2 months

Date of Submission: 29th November 2024

1
INDEX
S.NO TOPIC PAGE
NO
1) Introduction

2) Need for this product


2.1) Focus on Syntax Over Problem-Solving
2.2) Lack of Real-World Application:
2.3) Limited Exposure to Different Languages and Paradigms
2.4) Absence of Creativity and Exploration
2.5) Pacing and Lack of Personalized Learning
2.6) Pacing and Lack of Personalized Learning
3) Product Overview
3.1) How the Product Works
3.2) From the Client’s Perspective (School Administrator)
3.3) From the Customer’s Perspective (Student)
3.4) Key Features for Both Clients and Customers
4) System Design
4.1) Frontend
4.2) Backend
4.3) Database
4.4) Cloud infrastructure
4.5) Security measures
5) Step-by-step product flow

6) Conclusion

7) References

2
1) Introduction:

CodePaathshala is an innovative ed-tech company dedicated to


transforming the way coding is taught to high school students. With a focus on
students in grades 11 and 12, the platform bridges the gap between theoretical
knowledge and hands-on application, making coding both accessible and engaging.
The company’s primary goal is to foster a strong foundational understanding of
programming concepts, ensuring students gain practical skills that extend beyond
classroom learning.

As a Backend Developer during my internship, I worked on the


development and deployment of this platform, enabling a seamless experience for
both administrators and students. The platform’s robust infrastructure incorporates
cutting-edge technologies to ensure scalability, reliability, and user satisfaction. My
contributions included designing database schemas, implementing features for batch
management and real-time coding, and deploying the application on AWS cloud
infrastructure. These tasks aligned with CodePaathshala’s mission to create a robust
and user-friendly coding ecosystem for schools.

2) Need for this Product:


Coding is often taught in a way that doesn't fully engage or benefit students
for several reasons:

3
2.1) Focus on Syntax Over Problem-Solving:
Many programming courses emphasize learning the syntax of a specific
programming language before focusing on developing problem-solving skills. This
approach can overwhelm students, especially beginners, who may get bogged down
by the details of the code rather than understanding how to approach and solve
problems logically.

2.2) Lack of Real-World Application:


Many coding lessons in schools are theoretical and don't involve real-world
projects. Students may learn how to write code in isolation but don't see how their
coding skills can be applied in building something meaningful or solving real
problems, which can lead to disinterest.

2.3) Limited Exposure to Different Languages and Paradigms:


Students are often taught only one language or paradigm (e.g., JavaScript
or Python) without being exposed to the diversity of programming approaches and
tools available. This can limit their ability to adapt to different types of programming
challenges.

2.4) Absence of Creativity and Exploration:


Coding in schools is often presented as a structured, rigid process rather
than a creative and experimental activity. Many students are not encouraged to
explore and innovate with code, which could foster a deeper understanding and
passion for the subject.

4
2.5) Pacing and Lack of Personalized Learning:
Traditional coding curricula may not account for the varying learning paces
and prior knowledge of students. Those with prior experience may find the material
too basic, while those with little exposure may struggle to keep up, which can result
in disengagement.

2.6) Limited Teacher Expertise and Resources:


Not all teachers are trained in computer science, and many may struggle to
keep up with the rapidly changing technology landscape. Additionally, schools may
lack the resources (e.g., modern computers, software tools, and learning materials)
needed to teach coding effectively.

2.7) Emphasis on Grades Instead of Understanding:


In some cases, coding is taught like any other subject with an emphasis on
exams and grades, rather than encouraging practical skills development and critical
thinking.
To address these issues, it would be beneficial to focus on teaching coding as a
creative, problem-solving skill that prepares students for the future. This can be done
by incorporating real-world projects, offering opportunities for

3) Product Overview:

3.1) How the Product Works:

The platform is meticulously designed to address the specific needs of two


primary user groups: school administrators (clients) and students (customers). The
seamless integration of features ensures an optimized experience for both.

5
3.2) From the Client’s Perspective (School Administrator):

The platform enables schools to streamline their coding education


processes. Administrators can register their institutions and create structured batches
for their students based on class levels (e.g., Grade 11 Batch A). Once batches are set
up, they assign students to specific batches and monitor their progress through
detailed analytics. These analytics provide insights such as the number of problems
solved, total submissions, and individual leaderboard rankings, fostering a
competitive environment within each batch. Administrators also benefit from
intuitive tools to manage batch data, track engagement levels, and request new
features or support through integrated feedback mechanisms.

3.3) From the Customer’s Perspective (Student):

Students access a personalized dashboard designed to make their learning


experience engaging and straightforward. They are assigned problem sets categorized
by difficulty levels and key coding concepts. Each problem is paired with predefined
test cases, simulating real-world competitive coding platforms like LeetCode.
Students solve these problems using the platform's integrated Integrated
Development Environment (IDE), which allows them to write, run, and submit
their code. Feedback is provided in real-time, highlighting errors and guiding them to
correct their solutions. Students can also view their scores, rankings, and progress
reports, which are updated dynamically to reflect their performance within the batch.

3.4) Key Features for Both Clients and Customers:

The platform offers an array of features aimed at enhancing the user


experience for both administrators and students:

• A robust batch management system for tracking and managing student


progress.
• Problem-solving capabilities with automated validation of solutions.
• A user-friendly real-time IDE with "Run" and "Submit" functionalities.
• Comprehensive batch-wise statistics for administrators to monitor
engagement and performance.
• Leaderboards to promote healthy competition among students.
• Administrative tools to manage feedback, monitor usage, and request new
features.

6
4) System Design:
The platform is built on a highly modular and scalable architecture to ensure
smooth operations and easy maintenance. The system comprises the following major
components:

4.1) Frontend:
The user interface is designed to facilitate interaction for both students and
administrators. Tools like Figma were utilized to prototype and design
intuitive pages, such as the IDE, batch management dashboards, and
analytics pages. These designs were implemented using Django templates,
ensuring integration with the backend APIs.

4.2) Backend:
At the heart of the system lies the Django framework, which powers the
API endpoints and handles the core business logic. Backend modules
manage functionalities such as batch creation, problem submissions, and
leaderboard generation.

4.3) Database:
PostgreSQL serves as the database backend, storing critical relational data
such as student profiles, batch information, problem sets, and submission
logs. The database schema was designed to ensure normalization and
optimize query performance.
7
4.4) Cloud Infrastructure:
The platform leverages AWS services for scalability and reliability:
• EC2: Hosts the Django application, providing compute resources for
seamless user interactions.
• S3: Manages static files and media, ensuring fast and secure content
delivery.
• RDS: Hosts the PostgreSQL database, enabling robust data management
and backup capabilities.

4.5) Security Measures:


• SSL encryption ensures secure communication between users and the
server.

• Role-based access control mechanisms distinguish between students and


administrators, ensuring data integrity and privacy.

5) Step-by-Step Product Flow:

Step 1: School Registration and Batch Creation


Administrators begin by registering their schools on the platform. The Django-admin
interface, enhanced with Jazzmin for a modern look and feel, allows them to create
batches and assign students. The backend utilizes Django's ORM to store batch
details in a Batch model, which includes fields such as batch name, creation date, and
associated students. Relationships are managed through Django's ForeignKey fields,
ensuring seamless integration between the Student and Batch models.

8
Step 2: Problem Assignment and Schema Design

Once batches are created, administrators assign problems to students. Problems are
stored in a Problem model that captures attributes such as the problem statement, test
cases, difficulty level, and associated tags. Test cases are formatted as JSON objects
within PostgreSQL, enabling dynamic retrieval and processing during submission
evaluation.

Step 3: Student Interaction with the IDE


Students access the real-time IDE through their dashboard. The IDE interface
supports features such as syntax highlighting, code formatting, and error detection.
When a student submits their solution, an AJAX request is sent to the backend, where
Django processes the submission by executing the code against stored test cases. The
result, including pass/fail statuses and detailed feedback, is returned as a JSON
response and displayed on the student's interface.

Step 4: Submissions and Feedback


Every submission is logged in the Submission model, linking it to the respective
problem and student. Backend scripts evaluate submissions and store metrics such as
test case results, execution time, and memory usage. Feedback is generated in real-
time, helping students identify and rectify errors efficiently.

Step 5: Batch-Wise Analytics


The platform offers a comprehensive analytics dashboard for administrators. This
includes batch-wise statistics such as the total number of problems solved,
submissions made, and leaderboard rankings. The data is dynamically rendered using
Django Query sets and presented through interactive charts and tables.

9
Step 6: Deployment

Deployment on AWS involved the following steps:

1. Configuring an EC2 instance with necessary dependencies to host the Django


application.
2. Setting up PostgreSQL on AWS RDS for secure and scalable database
management.
3. Integrating AWS S3 for managing and delivering static and media files
efficiently.
4. Configuring SSL for secure communication and setting up a custom domain for
public access.

6) Conclusion:
My internship at CodePaathshala was a transformative experience, providing an
opportunity to contribute to an impactful platform that aligns closely with the
company’s mission to enhance coding education. The project enabled me to deepen
my knowledge of backend development, database design, and cloud deployment
while improving my problem-solving and collaborative skills.
This internship not only strengthened my technical expertise in tools like Django,
PostgreSQL, and AWS but also allowed me to design solutions that cater to real-
world user needs. Looking ahead, the platform can be further enhanced with features
like AI-driven insights, collaborative coding projects, and scalability to support larger
user bases. This experience has solidified my passion for building impactful
technology solutions that address meaningful educational challenges.

7) References:
The Certificate copy is attached with this report.

10
11

You might also like