This tool is meant for MCIT students who are looking for supplemental resources for course material. In the site, users can select a course and a module within that course, and it will display all of the available resources that other students have posted. Users can also see their own contributions on a dedicated page.
It was made using React for the frontend, and Firebase for the backend.
Include the link to your Devpost project page here: Devpost
- Lea Emerlyn -leaodovia – lemerlyn@seas.upenn.edu – GitHub
- Ben Swanson - bswan1 – bswan1@seas.upenn.edu – GitHub
- Leven Cai - levencai – levencai@seas.upenn.edu – GitHub
- Abdullah Amer - Devpost ID - abdamer@seas.upenn.edu - GitHub
As MCIT students, we use a multitude of resources to supplement course material. These can be articles, videos, forums, or anything that clarifies what’s being taught in class. Often, these resources are shared between individuals, in study groups, or through other informal channels. However, this leads to valuable resources being lost deep in the archives of Slack, and most students who would benefit from these materials may never see them. This is why we created Penn Resources, a site where students can share and describe anything they found useful, as well as upvote resources posted by others. Our goal is to combine the resourcefulness of all MCIT students in a way that will be helpful in all phases of class preparation. We hope you enjoy it!
There are no prerequisites to using the site. However, if you want to contribute a resource, you must have a @seas.upenn.edu email. This is to ensure that only Penn students can contribute resources.
We created a web app, and users can visit the site with this link: https://pennresources.web.app/
To install dependencies, run
npm
Then to start up the app run
npm start
To view resources, use the two drop down menus.
Then click on any card:
To submit a resource, users need to login with their @seas.upenn.edu email. Use the login button on the top right corner.
Click on your name and go to My Contributions. Here you will see a list of your contributions to Penn Resources.
Click on the Add resources button to add a new resource.
Click on the pencil icon next to each resource card to update a resource.
If there is any trouble, please contact us with emails in the contact tab.
Etc.
- React - A Javascript-based framework for website development
- RSuite - A library of React user-interface components for website development
- Firebase - A backend infrastructure service provided by Google
- React Icons - A library of icons for website design
- Inspiration: The layout of the website was inspired by MCITCentral.
- Use of RSuite: We followed the instructions and code examples from the official RSuite website and online guides to use their provided components (React Form and React Button).
- Google Authentication: Like MCITCentral, we use Google Sign In as the login authenticator. We followed the directions and code examples from the Firebase documentation to facilitate the login and logout process. We also followed the instructions and code from two webpages (page 1 and page 2) to restrict the email domain to seas.upenn.edu.
- Use of React Icons: We used the React Icons library to add a thumbs up icon in our website for the upvote feature
- Use of Firestore: We followed the directions and code examples from the Firebase documentation about Firestore, which stores the backend data for this project.
- React and JavaScript Fundamentals: Since most of the group members were new to React and JavaScript, we used multiple resources to learn the fundamentals. We watched tutorial videos (tutorial 1 and tutorial 2) and read online guides (JavaScript var, const, let, JavaScript ternary operator, JavaScript spread operator, JavaScript regex, JavaScript map, JavaScript array, JavaScript function, JavaScript function parameters, React key identifier, React useState, React useEffect, React onChangeCapture Event, React CRUD).
This package is licensed under the GNU General Public License v3.0 (GPL-3).


