Like @ump I think that the most important points are:
- This is a software development internshipinternship, thus unpaid or very low paid, and the point is to trade (1) your time for a mentoring/learning experience and contribute a small amount of value to company for (2) a mentoring/learning experience. It's a two-way street.
- OP is receiving negative value software development mentoring. Her only mentor is antagonistic. She is relying on the Internet and her previous mentoring from her previous internship to complete her assignments. This should be the end of the discussion – I'm annoyed that we even need to take it any further.
- OP is organically learning only about this particular company's problem domain. This is not highly valuable on its own, in contrast to what another answerer wrote. It's one business domain of thousands, and only partially relevant to another job. Regardless, it's disrespectful and dismissive to her to tell her to adjust herher expectations and question herher intuition, which IMO are spot-on. Maybe the bigger business lesson here is knowing when to fire your client — something she should consider.
Solid software engineering practices and wisdom, which she is not learning, are universally applicable. And learning those is what she signed up for — that's the benefit of the bargain that she entered into. It's the promise that this company (and the school by extension) are breaching.
There are plenty of exploitative and mis-managed tech companies out there. It's the rule, rather than the exception.
IMO, OP would be better off quitting this "internship", and dedicating herself to contributing to a high-profile GitHub-hosted open source project for 6 months. Because: she'll gain real universally applicable app engineering and teamwork experience. And she'll have public commits and comments to point to in job applications.