2. About Me
A recent graduate from Newcastle University with a degree in mechanical
engineering and a passion for programming. I love learning new softwares and
solving problems.
I’ve started a facebook page with some smaller projects I’ve worked on and for fun
learning. Like Arduino projects and modelling dynamical systems mathematically
and with code. Check it out:
https://www.facebook.com/profile.php?id=61556339006894
Check out my github: https://github.com/JDonnellyProgramming
Email: josephdonnelly2024@outlook.com
3. Relevant Experience
Uptivity Apps (software company+hybrid)-part time intern: worked on front
end data visualisation projects for business analytics software and used JSON
communication to communicate with the mySQL backend. 2 months.
JPA Consultants Junior position (engineering company+remote)-full-time:
involved in electrical design for buildings such as lighting and distribution
boards, etc. As well as this, I helped in automating CAD tasks with Python,
excel and autoLisp. Furthermore, I utilised power analysis softwares such as
amtech and did some basicelectrical power analysis calculations myself. 3
months.
5. These are some of the drawings and electrical designs I helped produce. In
terms of CAD, I was mostly involved in small power drawings, lighting
drawings and helping with the coding side.
The two electrical diagrams on this page are designs I produced used the
amtech software.
6. Analysis of Startup Data with basic Machine Learning
K-nearest neighbors model, regression
analysis and decision tree algorithm.
Link:
https://github.com/JDonnellyProgramming/
Data-analysis-for-startup-data
8. Why?:
To produce an optimal design for a wheel and suspension to win a formula racing car race for Newcastle university. Unfortunately, testing was
suspended due to Covid 19.
How?:
Use Newtonian static mechanics to retrieve load on each component. Select appropriate materials to maximize strength to weight ratio. Produce
final drawings in AutoCAD Inventor and a separate manufacturing plan for each component as well as bought in components.
Results:
A full set of BS8888 engineering drawings,
a bill of materials including bought in components and a full manufacturing plan for each component.
9. Messenger Website
Built using Python (Flask) backend, a google
sheets database using an API and uses
JavaScript, HTML and CSS for the front end.
Furthermore, it also uses JSON files and
keeps track of last logged in times for each
uses, message send time, current profile
image for each user, etc. Not finished.
Link:https://github.com/JDonnellyProgrammi
ng/Data-analysis-for-startup-data/blob/main
/data_projectagain.py
11. Forum Website
Json acts as a simple database and
communication between the (Flask) backend and
JavaScript, HTML and CSS front end.
Post and get requests used between the back and
front end and the idea is for users to write and
rate jokes. Working on a leaderboard system that
can be sorted monthly, weekly, etc.
Ongoing.
13. Why?:
Build a bridge to hold a 10N weight using only papers and straws. To then be tested in the lab.
How?:
Truss calculations on paper for every element in 3D. On paper calculations to find maximum deflection and yield. Optimize strength to
weight ratio. FEA software to check calculations.
Results:
A table of truss calculations produced, FINEL FEA 3D software successfully used and final drawings produced in AutoCAD.
16. Link:
https://github.com/JDonnellyPro
gramming/Mechanical-Engineeri
ng-Dissertation
Why?: A long term product would be used for construction companies to
set their parameters like N (numbers of floors), wall height, floor width,
materials used, etc, which could then be used to produce a simulation of
the building during different earthquake conditions and could automatically
tune a vibration absorber in a 2D model.
How?: Newtonian mechanics of vibration, focussing more in the horizontal
direction. Model each floor and wall as a spring and use beam bending
calculations, with, width, height, material and inertia to calculate the
stiffness. The ground motion can be modeled using Fourier Transform and
potentially the Power Spectral Density function with some random added
noise to simulate the chaotic nature of an earthquake. Python to be used
to for calculations, analysis and graph production as the calculations get
more complex.
Results: For N floors, NxN matrices would be needed, thus Python proved
very useful in finding eigenvalues, eigenvectors, etc. Python modules such
as: scipy, numpy, matplotlib, sympy, were used to produce: graphs of
motion for 100+ floors, deflection, potential failure, frequency responses,
vibration absorber tuning parameters and much more.
17. Hook Design
Why?: Design a hook that will yield at 30kN and fail at 60kN.
How?: Von Mises stress, Ultimate Tensile Stress and bending moments
calculated and recorded in a logbook for each design, and FEA analysis to
be undertaken to identify areas that can be optimized. Stress concentration
calculations to be considered and an appropriate safety factor to be
determined.
Results: Final design above, with holes in appropriate areas to reduce
weight. Manufacturing considered to ease manufacturing process.
However, even looking back now,the geometry could be improved for
manufacturing.Casting likely method for mass production. Neck area
reduced. More than 10 designs produced in the process before the final
result reached. Drawings produced in SpaceClaim.
19. Ping pong game produced in Python, with scoring system.
Snake game produced in JavaScript.
Canon game produced in JavaScript with projectile motion simulation for the fired cannons:
For an improved physics simulation, can include air resistance in calculation, and collision mathematics.
Draggable chess game made in JavaScript for two players on the same computer.
Dice rolling game; highest roll wins!
Runaway game with a program that chases you constantly! Built in Python.
Onscreen virtual piano built in HTML CSS JavaScript.
Can find them at my github: https://github.com/JDonnellyProgramming
21. Why?:
To produce an analysis of fluid flow in the contexts set.
How?:
Analyse the initial conditions and program the software to find things like: wall shear stress in pipe, average velocity, load on pipe pin
joints, upwind scheme graphs, drag force, etc.
Results:
A full document/analysis of all the conditions, and checked against hand calculations.
23. Although the project isn’t finished and the responsive programming is still in
working progress. This is a mathematically modeled pendulum in JavaScript, with
a live plotting graph that uses the ‘createElement(‘div’)’ method to plot points to
create a live graph from scratch. The length of the pendulum can be changed at
any point. A menu and a search bar with a search algorithm have also been
implemented. The title animates when hovering over. Most of the animations and
functionality have been created from scratch in JavaScript. The draw page is still
in progress, but will plot new divs in a continuous loop to create drawing and allow
erasing, different sizes, image placement and shapes. A framework like Django ill
be used for the backend. Link:
https://github.com/JDonnellyProgramming/Engineering-Simulations/tree/main/engi
neering%20simulations
25. Why?:
To help correct spinal growth in children with scoliosis. The growing mechanism within the rod (which can be activated by a magnetic
control system) is to reduce the number of operations needed.
How?:
Use of stress-strain calculations, bending moments, and static calculations. Knowledge of the load on each vertebra in the spine during
events like walking and sitting, and an understanding of the shear stress on each part too. An appropriate safety factor to be
determined and a likely weight of a child to be understood. The design to be produced in AutoCAD.
Results:
Carbon fiber used for the extending bar, to reduce weight and increase strength. The Young’s Modulus of carbon fiber is higher than
Titanium’s (the originally used material). Bought in components selected appropriately online. The drive pin diameter increased slightly
to reduce likelihood of failure. Necessary surface treatment method on carbon fiber to ensure no complications with body interaction
occur. A bill of materials produced, with weight, price and material for each component.
26. Rocket Simulation
Simple simulation of rocket in Python with fuel bar that
lowers over time, rocket speed changes, and how many
screens it has passed by. The number of screens passed
by can be used as a distance, then with time, the rocket
speed at any moment is calculated. The rocket then runs
out and fuel and slows down, falls then explodes as it hits
the ground. An improved model would be to add real
rocket physics with variable mass as well as improved
GUI. The next version will be that.
27. Student System
Simple database for usernames and
passwords. Sign up feature will add new
credentials to database. Notepad for
database, then split method to obtain the
correct data.
Search bar with search algorithm that it
gets from data in another notepad
database.
Navbar animation also there. Aim to have
the contact label produce a graph of
student data for any variables. May work
on an encryption algorithm in the future.
(project not finished)
29. A banking website with a front end based on Lloyds banking system. Although it is for full screen only, the website has many features
like, an animating find a branch opening menu, find a branch search system which tells you the number of banks in that area and gives
a link to google maps, A simple JSON backend with the amounts of money made. The project is ongoing. A chat bot for the ‘ask a
question’ segment in working progress. Project not finished. Link: https://github.com/JDonnellyProgramming/Banking-Website
More projects at my github page, such as: Flask Live chat room, Python animations….
I would be happy to share my github.
30. Skills
AutoCAD, AutoCAD Inventor, Ansys FEA, CFD (Ansys Fluent), TinkerCAD, Arduino, MATLAB.
Arduino-an understanding of building the circuits and programming them with C++
Python: modules - numpy, sympy, matplotlib, tkinter, Scikit-learn, SciPy, Pandas, SeaBorn, etc. App building.
Web scraping projects, games, dynamics systems. Some machine learning.
JavaScript - web animations, 2D game development, JSON communication
HTML, CSS - web design, functionality, animation
Flask, Django - servers, backend, URL redirect, dynamic programming
C++ - C++ utilised in engineering project, fundamentals
sqlite3 - Fundamentals
Autolisp - have used before
React Native - Have used before
31. About me
I am hard working and am aptitude for learning new software and
programming languages. I have a confident grasp of linear algebra, calculus
and statistics as well as a solid overview of high level mathematics and
mechanics.