A platform to discover new repositories and bring life back to abandoned ones.
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Table of Contents
GitInspire aims to help developers to come up with ideas more easily by providing:
- An easy interface to find a random repository on GitHub given filters such as language and stars.
- A database generated by other developers containing repositories labeled with "tags" to easily help provide more useful and narrower searches.
For this project, you're required to have npm
and pip
installed.
- npm
npm install npm@latest -g
- pip
python -m pip install --upgrade pip
-
Create a free GitHub OAuth App at https://github.com/settings/developers
-
Clone the repo
git clone https://github.com/cyanChill/GitInspire.git
-
Follow the associated install instructions from
backend
&client
folders.i. Backend Instructions: Backend README
ii. Client Instructions: Client README
Visitors of GitInspire can view a list of repositories suggested by users of our applications which are labeled with "tags". To achieve our goal of helping developers come up with ideas through inspiration, we allow them to filter through our database to get searches based on what they want.
- They can filter by languages a repository has, the number of stars, and through tags which help identify what the repository is about.
Alternatively, developers can utilize our interface to filter repositories directly from GitHub, which lacks the fine-grain search compared to searching through our database due to the lack of labeling.
A great benefit of our labeling system is that a developer can label a repository as
Abandoned
to bring more awareness to it and hope for other developers to pick it up or suggest alternatives.
With the core of our application being developers helping other developers by suggesting repositories to our database and labeling them accordingly, we allow:
- GitHub accounts with an age
>3 months
to suggest repositories to grow our database to help others. - GitHub accounts with an age
>1 year
to create tags to help better refine the search process by giving more options on how a repository can be labeled.
As an application centered around GitHub and its repositories, we allow users to sign into our application with their GitHub account to help contribute repositories and create tags.
All data stored in our database such as repositories, tags, and user accounts are all public information. You can verify it by looking at:
- Our code for the application (since it's available to the public): GitInspire Authentication-Related Code
- Example response from GitHub's Rest API: https://api.github.com/users/cyanChill
Category | Subcategory | Weight | Completed |
---|---|---|---|
ARCHITECTURE | |||
MVC (Model, Controller) | 10% | ✅ | |
APIS | |||
Authentication | 5% | ✅ | |
Project Specific | 5% | ✅ | |
BACKEND | |||
Database (Relational, Non-Relational) | 10% | ✅ | |
Python (Language), Flask (Framework), >10 API Routes | 10% | ✅ | |
FRONTEND | |||
Framework (Bootstrap, Foundation) | 10% | ✅ | |
React, React Router (>10 Components, >5 Pages) | 10% | ✅ | |
AUTHENTICATION | |||
Local Strategy (Cookie + Session) | 10% | ⬜ | |
Third Party Strategy (Google, Github) | 5% | ✅ | |
DEPLOYMENT | |||
Heroku | 10% | ✅ | |
TESTING | |||
API; Unit, Integration | 5% | ✅ | |
Client; Unit, Integration | 5% | ⬜ | |
MISC | |||
README | 5% | ✅ | |
BONUS | |||
Continuous Integration | 5% | ✅ | |
Continuous Deployment | 5% | ✅ | |
JWT (JSON Web Token) Local Authentication | 10% | ⬜ |
Note: The
Authentication
&Project Specific
APIs are the "same" (the main API used is GitHub's REST API while we use a GitHub OAuth app to do authentication & handle it through GitHub's API).
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See license.md
for more information.