Sorry if this is a lot, I've ordered the points in the approx order of importance to the overall experience. I have no idea what you'll be graded on, or how much time you have to budget towards any of this, but I hope this helps.
The level design doesn't give you enough time to actually learn how to handle any of the obstacles the game poses before it makes you deal with everything at the same time or in quick sequence, for example, the game makes you dash jump to a platform with low headroom before it requires you to do even a simple jump. It makes you deal with a wall jump section and a ledge mantle with an instant death spike near the top giving you no space to learn how ledge mantles feel first. It makes you deal with your first enemy with an instant death spike behind you giving you no space to learn effective ways to handle that enemy, and then to top it off after dealing with all that the game rewards you with two off-screen instant death cars. Those give me the vibe that this is supposed to be a hard platformer à la a kaizo or a troll level, but as a stand alone game you have to give people a chance to learn the game feel and get invested enough to get through those. For example, I have no idea the timing on dodging the car from the front because to even try it I have to get through the whole rest of the game to even try it. As a section of game what I saw up to that is probably fine, but as the first section of a game it poses too many barriers to learning the game. As a result, I have no comments on anything after that point because I've not seen it.
I'd recommend easing people into it with a soft tutorial with some generous checkpoints; you could have it so, for example, the first area is enclosed with a wall with a ceiling on the right so you're immediately signalled that you're supposed to be going left, and then left is a ledge that you have to jump up that's just a little shorter than the max jump height, then one just a little higher so you have to do a ledge mantle, followed by enough space that you don't feel in danger of overshooting the landing, then your first hole that you only need a regular jump to get over then a checkpoint and a comfortable amount of flat ground. Then just a hole that's wide enough that you need to dash jump over, then a checkpoint. Then a flat section that with a reasonably generous lead in before a just fly so you have enough room to experiment with fighting and dodging, then a checkpoint. Then a section that's just flat with a spike to jump over, then a checkpoint. Then, with enough spacing before it so it doesn't feel like it's in the way of jumping over the first spike, a wall jump section with enough flat ground at the top that you don't feel in danger of overshooting the landing into another threat, then a checkpoint. You could have something like a ceiling above the outside side wall on this first wall jump section just so you have to actually go between the walls at least once and not just spam jump up the outer wall, but that's not a huge deal. Then, so that you don't have two wall jump sections too close together in quick succession, you could have one or two sections that combine any two of the other obstacles together, with checkpoints between and after. You could also do that slightly cliche, but still helpful thing, where the first time you need an input, there's an in-world signpost telling you what the button is.
Then there's the matter of the instant-death cars; I'll start with they are at very least telegraphed with the beep. You could at this point have the player arrive at that platform to the right of the current start and just continue onwards and they would have theoretically had the opportunity to get most of the skills needed to actually proceed and would have at least some degree of personal investment from the feeling of progression from getting there, and hopefully enough to make it through some difficulty, but, assuming you actually want people to be able to make it past the cars, you really need a section where people can practice the timing on a car coming towards their face with no other obstacles between retries. You could do this by having a checkpoint in between the vertical car and the front-on car and let people suffer it out there, but if you want to be helpful or give them a good introduction you could have a section in between the previously described soft tutorial and the current start which is a flat area with an obvious road texture, have one of those 'monkeys crossing' signs at the start of the road to really literally sign post it which could double as the checkpoint, then, assuming people are holding left this whole time, at the point where you'd need to jump to dodge the car, have a splat mark on the road or some other visual identifier to help people actually learn the timing. If you're feeling generous you could also use the 'monkeys crossing' sign later on as additional indication of them, but if you do that make sure you keep it consistent as to if they count as a checkpoint or not.
The combination of enemies requiring multiple hits, the lack of any kind of knockback on hitting, and the fact that you only attack forwards makes it very hard to avoid damage, and makes combat feel like you're just mushing your faces together until one of you falls over. Adding knockback on hitting enemies would make hits that don't kill feel more impactful, and give you a reasonable chance to actually get through combat unhurt. Similarly if you had enemies hitting you knock you back it would make failure to properly engage them actually interact with the platforming, potentially knocking you off things, and make it so that combat with a fly has some back and forth instead of you just both rubbing faces. If you also had enemies like flies ramming you also cause them to recoil back a bit it would also help sell the interaction and make the whole thing feel more visceral. An aside; the first time I encountered the fly I jumped on top of it, and when that did nothing other than have me ride it for a second or two taking damage until died, I then went back to the game page to see what the attack button was that I'd obviously missed.
The visual shape of the terrain not matching the collision shapes, aside from often making it look like you're floating on nothing, makes it very hard to visually judge edges. Functionally speaking you would be better served with using a flat texture for the terrain, then for visual appeal adding separate decorative objects and/or edgings to break up the shape, like grass tufts, bushes, hanging moss, cracks in the rock and so on, although if you do that you need to be careful to make sure that there's some visual differentiation between things you're supposed to care about like collidable terrain and spikes, and things you're not. It is however good that you have something to stop you just falling off edges that you slowly inch up to. It's subtle; I almost didn't notice it, which is how good mechanics like that should feel. They're the things you only tend to notice if they aren't there. It would be good if it, or something similar like coyote time which might be easier to implement there, also applied to walls you're clinging to, to make wall jumping easier; I resorted to holding one direction and spamming jump to get up walls, even if that is much slower than properly wall jumping, and feels more like a cheese. I'd originally attributed the fact that I'd never missed a jump that it felt like I should have gotten to the fact that the visuals were smaller than the collision, but I realise it was probably that mechanic, which you deserve credit for.
It repeats the jump noise whenever you press the jump button, rather than whenever you actually jump, which makes it more obvious that there's only like 2 noises. I don't know how much you care about not being able to spam the sound, but either way if you vary the pitch of sound effects like that by up to 5% either direction it will greatly improve the variance.
Similarly it makes the dash sound at times when it doesn't dash, such as when you're not holding a direction key and press the button, although on that subject it might feel more natural if it remembered and used the last pressed direction or used your current facing or movement vector rather than requiring one being held. On a personal note, it feels very unintuitive to me to have dash on a direction key and not be directionally affected by that. I've found myself trying to press right to dash right even after a bunch of playing. I'm sure I could get used to it, but something as simple as not having it on a direction key, or having both left and right dash, whether or not it dashed in those directions, would probably go a long way to help with the control feel of that.
You could perform some more advanced movement if you didn't have it cap your horizontal momentum so harshly when you come out of a dash while not on the ground. It would also probably improve the feel of the movement, and maybe add some speedrunning potential. Like making it so you can do a ground-dash straight into a jump to do a longer jump.
These are less important, and probably things you're already aware of, but are points that would help with the overall presentation, and I might as well mention at this point:
There's no visual cohesion; some bits are edited photos, some bits are mspaint drawings. This isn't inherently a problem, but it'd look more cohesive if you picked one and stuck with it; be it edited photos, mspaint doodles, or if you roped in someone from art class to help create art assets.
If you had some kind of background element connecting at least some of the platforms to the the bottom of the screen it'd go some way to making the place feel like somewhere that exists in a world rather than just some floating rocks.
Nothing is animated, even things that would be easy to animate like making the saws spin.
The game instantly snapping you back to the respawn point on death gives you almost no time to process what happened. It's good that it's fast and requires no input to proceed, especially for this sort of game, but it'd be good if it at least dwelled on your death and the cause of it for like a quarter of a second or something