Skip to content

A platform to discover new repositories and bring life back to abandoned ones.

License

Notifications You must be signed in to change notification settings

2022-csc-59866/GitInspire

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MIT License Backend Tests Client Tests


Logo

GitInspire

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
  1. About The Project
  2. Getting Started
  3. Features
  4. Rubric
  5. Contributing
  6. License
  7. Acknowledgments

About The Project

GitInspire aims to help developers to come up with ideas more easily by providing:

  1. An easy interface to find a random repository on GitHub given filters such as language and stars.
  2. A database generated by other developers containing repositories labeled with "tags" to easily help provide more useful and narrower searches.

(back to top)

Built With

  • Next
  • TypeScript
  • Tailwind CSS
  • Vercel
  • Flask
  • Python
  • PostgreSQL
  • Render

(back to top)

Getting Started

Prerequisites

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

Installation

  1. Create a free GitHub OAuth App at https://github.com/settings/developers

  2. Clone the repo

    git clone https://github.com/cyanChill/GitInspire.git
  3. Follow the associated install instructions from backend & client folders.

    i. Backend Instructions: Backend README

    ii. Client Instructions: Client README

(back to top)

Features

Discover

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.

Contribute

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.

GitHub Login

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:

(back to top)

Rubric

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).

(back to top)

Contributing

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!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See license.md for more information.

(back to top)

Acknowledgments

(back to top)

About

A platform to discover new repositories and bring life back to abandoned ones.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published