My projects

School of Code CoachBot
Final group project for the 16-week bootcamp with the School of Code. Built using TypeScript, Next.js, Vercel AI SDK, Tailwind CSS, and OpenAI's language model (LLM).
GitHub repository https://github.com/SchoolOfCode/bc16-final-projects-team-large-language-mavericks
Presentation and demo https://www.youtube.com/watch?v=69QqHgv90Ss
Our Project Vision: A CoachBot: your guide, your mentor, your learning companion; a transformative experience that goes beyond your regular chatbots. With insights, resources, and quizzes, it propels learners forward. Say farewell to shallow interactions. Our CoachBot: the catalyst for learning excellence.
- Followed a structured and agile process - user research, planning and wireframing
- Developed an AI-driven chatbot application using TypeScript, Next.js, Vercel AI SDK, Tailwind CSS, and OpenAI's language model (LLM).
- I was responsible for writing the foundational logic and code that enabled connection to the Notion database via Notion API, feeding the curriculum and other customised data to the LLM.
- The CoachBot is fine-tuned to deliver comprehensive responses, provide code examples, and offer resources for further learning. It integrates seamlessly with the current curriculum, linking responses to available workshops and ensuring a personalised learning experience

Celestial Objects Database
The Celestial Objects Database catalogs planets, moons, stars, constellations, and galaxies, and includes observational instruments for determining viewability. Built using MySQL, it demonstrates SQL techniques like joins, views, stored procedures, triggers, and subqueries, following 3rd Normal Form (3NF).
Project Vision: Create an efficient, well-structured database to catalog celestial objects and their observational data, providing a flexible framework for querying information about these objects and their visibility.
- Created a relational database with 7 tables, including planets, moons, stars, constellations, galaxies, and instrumentation.
- Implemented relationships via foreign keys, ensuring consistency between celestial objects and their observable instruments.
- Developed complex queries using views, joins, and subqueries for data extraction and analysis.
- Stored Procedures: A procedure for validating and inserting observable objects based on their type (e.g., planets, stars, galaxies).
- Triggers: Automatically update the observability table when celestial objects are deleted, ensuring data integrity.
- SQL Functions: A custom function to calculate the average radius of planets based on their type.
- ETL Process: Data was extracted from sources like NASA and Wikipedia, transformed to ensure data consistency, and loaded into the database using SQL scripts.
- Data Transformation: Cleaned, formatted, and converted data for storage, including tasks like calculating average radii of different planet types and filtering celestial objects by observability.
- Data Pipelines: Triggers and automated processes ensure real-time updates when records from planets, moons, stars, constellations, or galaxies are deleted, maintaining the accuracy of the observability table.
- Adhered to 3rd Normal Form (3NF) for optimized database design and reduced redundancy.

Green Energy Manager
Final group project for CFG Java + Masters program.
A RESTful API developed using Java Spring Boot for
managing and tracking energy transactions, including
functionalities for submitting meter readings and
calculating net energy differences.
Project Vision: Develop a robust API using Spring Boot that provides functionalities to manage energy readings, calculate energy differences, and interact with a MySQL database for energy transaction data management.
- Developed a Spring Boot application providing RESTful API endpoints for managing energy transactions.
- Implemented endpoints to add new meter readings and calculate net energy differences for specified months.
- Configured MySQL database to store energy transactions, with an application configuration that securely manages database credentials.
- Implemented database triggers to automate data transformations, aligning with ELT principles. For example, a trigger was used to modify the energy type field based on the transaction type after the data was loaded into the database.
- Included Swagger UI for interactive API documentation and testing.
- Simulated API interactions through comprehensive tests and real-world usage scenarios to ensure functionality.

ResourceAdmin
Group project for the School of Code Codefest Hackathon in the category 'Enhancing Educational Experiences with Innovation.' Built using TypeScript, Next.js, and Tailwind CSS.
GitHub repository https://github.com/peterston-e/codefest
Our Project Vision: ResourceAdmin is your centralized dashboard for seamlessly managing and organizing both school-endorsed and personal resources in one efficient platform.
Streamline your workflow, enhance productivity, and keep all your valuable resources at your fingertips with ease.
- Followed a structured and agile process - brainstorming, planning and wireframing
- We developed a web app designed to centralize and manage educational resources, both school-endorsed and personal, on a single platform using TypeScript, Next.js, and Tailwind CSS.
- I was responsible for creating the nested sidebar for the application and the logic for adding new resource.
- Our project was recognised as a winning entry.

Dictionary
Assignment for CFGdegree.
A terminal-based
dictionary app interacting with an API. Built using
Python.
My Project Vision: A terminal-based dictionary app that allows users to search for words and retrieve detailed information such as definitions, phonetics, synonyms, antonyms, and examples. The app provides a seamless user experience by fetching data from a free dictionary API and transforming it into a comprehensive word lookup tool.
- Created a console application in Python that interacts with the Dictionary API to fetch and display word information.
- The app welcomes users and prompts them to enter a word they wish to search for. It makes an API call to retrieve data, and if the word is found, it displays the word’s phonetics, synonyms, antonyms, definition, example, and part of speech.
- If multiple data elements are available, they are displayed using a loop.
- Users have the option to save the results to a file, with checks in place for valid file names and file overwrite or append options.
- The app also allows users to perform multiple word lookups in a single session.
- Use of colours in the terminal for better user experience.

Climate Change and Street Safety Board Game
A Java application addressing climate change and street safety, created as part of the JAVA MOOC Challenge with Code First Girls.
- Street safety is a pressing issue in many parts of the U.K, affecting a large portion of the population
- Climate change is a pressing issue worldwide with the weather changes, eroding land, and destructive wildfires.
Our Project Vision:
- One or Two player support
- Select from a choice of Climate Change or Street safety trivia
- Choice of the board size from 6-10 (e.g. 6x6, 7x7, 10x10 etc)
- Learni interesting facts and test your knowledge
- Colours shown in terminal window for user-friendly experience when players are moving
- Flexibility to be adapted to any topic
- Interactive GUI
- Discussed ideas about implementing the app or game using Slack. Analysed the constraints of the task.
- Decided to develop the game based on climate change and created interactive quiz by generating a CSV file with a list of multiple choice questions.
- Initially started with building terminal based version of the quiz and then the entire game and analysed the possibilities to create board game from console to GUI version.
- I was responsible for developing terminal based version of the game.
- Our project was recognised as a winning entry.

FeelingFusion Arcade
Final project for CS50X - CS50's Introduction to Computer
Science.
An interactive web application designed to
help children and adults explore the world of emotions
through play. Built using Flask framework, JavaScript and
SQLite.
Please note that CS50's Academic Honesty policy requires that you don't provide or make available solutions to assessments to anyone, whether a past, present, or prospective future student, therefore the GitHub repository is not set to public. If you would like to know more about the project, please feel free to reach out to me.
My Project Vision: Create FeelingFusion Arcade with a few games. Games, where children and adults alike could explore the world of emotions. And learn about them, through play.
- Developed a WebApp using Flask framework, JavaScript and SQLite database.
- The WebApp has 2 main sections: Emotions and Games.
- The Emotions section introduces the Zones of Regulation™, categorizing emotions into four groups. It provides visual emotion cards with names, descriptions, body signals, and suggestions for managing emotions.
- The Games section includes three interactive games: Match the Zone, Find the Emotion, and a Memory game with varying levels, designed to help users learn and recognize emotions and their corresponding zones.

Revision API
Group Assignment for CFGdegree.
An API designed to
support students learning Python, JavaScript, and SQL.
This API enables users to access and manage programming
questions to help with their studies.
It was built
using Flask framework, MySQL, and Python.
Project Vision: A versatile Revision API that helps learners assess and improve their skills in Python, JavaScript, and SQL. The API serves as a valuable tool for coding students, enabling them to access and manage a wide range of programming questions and track their progress over time.
- Developed a RESTful API using Flask and MySQL to manage a collection of programming questions across three languages: Python, JavaScript, and SQL.
- Implemented CRUD operations for questions, allowing users to create, read, update, and delete questions, with easy access through well-defined API endpoints.
- Designed the API to allow filtering questions by programming language, supporting targeted study sessions for specific topics.
- Added functionality to track and update mastery levels, enabling users to measure their progress over time.
- Employed exception handling to ensure robust database connections and graceful error messaging.
- Simulated interactions with the API through a client-side application, allowing users to test and experience various API functionalities, such as retrieving questions, updating mastery levels, and adding or deleting questions.

Animal Quiz
Assignment for CFGdegree.
A simple web quiz designed
to test your knowledge about animals. Built using HTML,
CSS and Vanilla JavaScript.
GitHub repository https://github.com/nashetty/Animal-Quiz
My Project Vision: Create a simple and fun web quiz designed to test your knowledge about animals. Dive in to play, learn something new, and enjoy the experience along the way.
- Developed a simple web quiz using HTML, CSS, and Vanilla JavaScript.
- The quiz begins with a landing page that displays the quiz name and a welcome message. Users are prompted to enter their name before starting the quiz.
- The quiz dynamically presents questions stored in an array of objects, with four multiple-choice answers.
- User inputs are handled through an answer button, with points awarded for correct answers.
- At the end of the quiz, the total score is displayed, the user is thanked by name for participating and asked if they would like to play again.

SpellHive
Group Project for the Introduction to JavaScript
Kickstarter course by Code First Girls.
A fun and
interactive website created specially for children in
Years 1 through 6, to help them practice their spelling of
common exception words. Built using React.
GitHub repository https://github.com/nashetty/SpellHive
Must Haves: Basic React implementations, At least two pages, CSS for styling.
Nice to Haves: Effective use of classes and IDs, Adding States & Events.
Project Vision: Create an engaging and interactive React-based website designed to help children in Years 1 through 6 improve their spelling of common exception words.
SpellHive: Welcome to SpellHive, an engaging and interactive React-based website designed to help children in Years 1 through 6 improve their spelling of common exception words. This project was created with the user in mind, ensuring a responsive and enjoyable experience on any device. With age-appropriate word groups, interactive learning features, and user-friendly navigation, SpellHive makes spelling practice fun and accessible. Dive into SpellHive to buzz your spelling skills to perfection!
- Developed a a responsive and interactive spelling practice website using React and CSS.
- The website features a landing page with a welcoming interface tailored for primary school aged children in Years 1 through 6.
- Users can select their age group to receive a customized list of common exception words.
- Words are presented one at a time, with audio playback available to hear each word.
- Users type in their answers, and feedback is provided immediately, with the option to retry or skip.
- At the end of the session, users can review their correct and incorrect answers.