🙋 What is Mentored?
Mentored intends to be a single, unified platform for people new to the technology and software development to find curated, high-quality resources for their topics of interest from industry experts and real software developers. 👨💻
But that's not all, this platform is built to facilitate real learning with mentorship, allowing mentees to find mentors to learn skills and build up their portfolio. ✨
💡 Why did we build it?
Remember the first time you started off with tech? The vast internet at your fingertips but it's the first step that's always the hardest. 😓
With Mentored, anyone (even you!) can easily find free resources curated in a single place from industry experts instead of crawling the internet. What's better? You can contact real mentors, software developers and engineers, and contact them to seek guidance. Sounds good? Of course, it is. 🌟
In fact, it doesn't stop there. Mentored allows real people to mentor the future generation of developers and point them to right direction, making sure they can (to take words from our friends at MLH) truly level up. 🆙
🌐 Where can you find it?
👨🏭 Who are we?
💻 What did we use?
Mentored has a ReactJS frontend ⚛️ hosted with Heroku, and a Django backend 🐍 backed by PostgreSQL hosted on Google Cloud Platform. The UI is based on React Bootstrap, while the Cloud Run backend uses
psycopg2 for communicating with Cloud SQL. 💽
All our deployments are containerized using Docker and images are used to deploy revisions, allowing for easy traffic management and A/B testing.
Cloud SQL and Cloud Run instances on GCP are configured to handle multitudes of requests when required and be highly fail-safe.
All data is stored on the cloud and sensitive data like passwords are additionally hashed and salted with PBKDF2-SHA256.
The project is deployed automatically from our codebase on GitHub to GCP Cloud Build seamlessly.
👨💻 Life's easy for our contributors
- To get a deeper understanding of the project, anyone check out our project's wiki. 📖
- To maintain a collaborative environment, we have the Code of Conduct and the Contributor Guidelines. 🔧
- If there are any bugs in the application, or a feature someone wants they can open an issue and our pull request and issue templates will make life much easier. 🐞
- We have established style guidelines when making contributions. 🧹
- We have automatic labelers and linters set up using GitHub Actions to check all pull requests for syntax and correct labelling. Instructions on running the linter locally can be found in the project README. 🖌️
- Our README contains the build instructions for both the frontend and the backend. ⛏️
💡 What did we learn?
Lots of firsts. 🆕
- Yash delved into Django and React for the first time and worked with both, integrating endpoints in both interfaces. He also worked with PostgreSQL and surprisingly, enjoyed it. 🐘
- Preet worked with Axios for the first time to fetch requests from our backend. She also learnt about cookie authentication and implemented it successfully in the web app. 🌐
- Ankit implemented the containerization, writing a Dockerfile and setting up helpful GitHub actions for labelling and linting for the first time. He also integrated the backend in Google Cloud Platform for seamless continuous deployment. 🏃💨
🔜 What's next?
- Integrate our service with mentorship providers like Raise.dev and Major League Hacking. 👩🏫
- Enable recommendation systems and premium curations in partnership with other educational resources. 📚
- Set up a forum for many-to-many interactions to speed up learning and make real engagement between people. 💬
Where we want to be:
- A completely unified platform to bring software learners and teachers together - with the best resources possible. 🧑🏿🤝🧑🏿
📜 Truly open-souce
This project is released under a free and open-source software license, Apache License 2.0 or later (LICENSE or https://www.apache.org/licenses/LICENSE-2.0). The documentation is also released under a free documentation license, namely the GFDL v1.3 license or later.