If you have access to a reasonable cassette player and a computer with external sound input/outputs it should be fairly easy. You won't get better quality than the original recording without a lot of hassle and processing, but if you are satisfied with the quality when playing the cassettes, you will be able to match it fairly well. The issues with cassette tape are how well they were originally recorded, (recording levels, background noise etc), how much the tape has degraded over time (unless equipment is properly cleaned and demagnatised regularly, each time the tape is played, residual magnatism in the machine heads will slowly reduce the signal stored on the tape, and tapes degrade naturally over time as well), and the quality of the playback machine you are using.
At the computer end, most soundcards can handle a range of audio input levels, regardless of connector type. I have achieved a lot of quality transfers with a quality walkman style cassette player connected into the input of an inbuilt sound card with a 3.5mm stereo headphone to 3.5mm stereo headphone type cable. I have even had small multitrack recording studios in school music rooms operate through the 3.5mm audio in and out connectors on sound cards or laptops. You just need to be able to adjust the sound card levels to reasonably match the levels you are feeding to it.
You will need some audio capture and manipulation software to capture the audio stream as it comes off cassette, Audacity is a good free program for this. once you have the player connected to the audio input, start rolling tape and monitor the level showing on the computer screen in Audacity and adjust as required. When satisfied that the levels are reasonable, stop the tape and rewind it back to the start of the tape, hit play again on the tape and record in Audacity. Monitor and adjust levels as the tape plays through and save the data file as a .WAV file.
You can then use Audacity to play the wave file to select the portions you want to keep and copy them into new tracks and save them as individual segments that will become MP3 files later on. You can also individually tweak levels, equalise etc these files to ultimately achieve consistent volume and sound across the the group of files, and eliminate gaps between tracks etc.
Once you have that done to your satisfaction, you should be able to find a viable Audio Converter program free or low cost that can take the edited .wav files and convert them to MP3 files.
You haven't said in your post whether the tapes are music tapes, lectures, family history material etc, but it should not matter, you should be able to run the process as outlined and achieve reasonable results. What the original material is will affect the amount of time involved, for instance commercial music tapes will generally have consistent peak levels, and similar gaps between tracks, whereas amateur speech recordings may be more variable in level as the speakers emphasis or emotions change, and may have random gaps where they are collecting their thoughts or wanting listeners to do some thinking. These can generally take longer to clean up and process, unless you adopt a policy of leaving gaps etc as per original.
I used to be an engineer, I'm not an engineer any more, but on the really good days I can remember when I was.