Introduction
The Google summer of code program has been a great and fun learning experience to me over the past months,
during which I was developing an interactive platform for AIMA Exercises.
My project idea was to make a dynamic site without having a backend thus saving server costs,improving UI/UX for
the platform, devise a mechanism for submission of answers to various exercises of the book, add other features like
bookmarking exercises, question bank mode, fixing cross references, proposing questions and extracting questions among others.
What is AIMA-Exercises
AIMA-exercises is an open-source community of students, instructors and developers. Anyone can add an exercise, suggest answers to existing questions, or simply help us improve the platform. The fourth edition of the book Artificial Intelligence: A Modern Approach will not be having exercises inside the book, but the exercises have been shifted to this online platform, where the users/students can see, solve and request for answers to various exercises.
Project Goals
- Improving UI and workflow of the platform
- Switching to Lanyon Jekyll theme without disturbing the current code structure.
- Adding feature to bookmark exercises
- Fixing Cross-references.
- Adding Question Bank mode
- Getting rid of disqus and implementing staticman
- Improving the answer submission workflow and removing hard coded HTML from exercises.
- Bringing back search feature with Lanyon theme
- Bringing back breadcrumb feature with Lanyon theme
- Using Github API to fetch data from answers folder because Jekyll doesn't have such an inbuilt function yet.
- Bringing back upvote question feature with Lanyon theme
- Feature to propose questions
- Feature to extract questions
Contributions to AIMA Exercises before GSoC:
- Solved Issues: #25, #27, #28, #31, #32, #30, #51, #57, #68, #70 and sent Pull Requests #45, #47, #48, #49, #50, #55, #58, #69, #71 respectively (solutions to exercises).
- Sent PR #54, #56, #53, #52, #60 (merged), #61(merged) , #66 solving issues related to the website and created issues #42, #51, #59 to report missing files, bugs and inconsistencies in the codebase. Made the required missing index file related to Issue #42 awaiting review from mentors so as to get merged.
- Made sample UI designs for Table of Contents page, Question Bank and Exercises page and uploaded screengrabs under Issue #36.
Pull Requests merged during GSoC period along with Goals
- Improving UI and adding Lanyon Theme
- Using Github API for fetching data files.
- Removing Community answer files and hard coded HTML.
- Configuring Staticman for AIMA Exercises and building @staticmanaima
- Configuring Breadcrumbs for Lanyon theme.
- Configuring Search with Lanyon theme.
- Adding Bookmarking Feature to the platform
- Fixing Cross references and adding external figure images with appropriate HREF links.
Working Screengrabs:
Future Aspects There are things that I could not finish during the GSoC period and could act as starting point for anyone who would be interested to contribute to the project further.
- Feature to propose new exercises through the platform itself.
- Bringing back the upvote question button with the Lanyon theme.
- Feature to extract a few chosen question in Pdf/Tex/Md format.
- Improving the
request for community answer
mechanism.