GitHubGems is a backend API for a platform where users can discover, share, and discuss hidden gems on GitHub β fun, interactive, and underrated repositories.
π Create accounts and log in
π Post cool repos (not just their own)
π·οΈ Tag and categorize them (e.g. game, cli, visual, learning)
π¬ Talk about what makes the repo unique
π Help others find creative, overlooked GitHub projects
FastAPI β High-performance Python web framework
SQLAlchemy β ORM for modeling and database operations
PostgreSQL (Neon) β Scalable, cloud-based relational DB
Pydantic β For request/response schema validation
Alembic β Database migrations
User registration & login (JWT-based)
Post a GitHub repo with title, description, tags, and link
Add metadata (creator, why itβs interesting, category)
Like/bookmark repos
Comment and discuss
Tag-based filtering and search
Clone the repo
git clone https://github.com/yourusername/githubgems_backend.git cd githubgems_backend
Create a virtual environment & activate it
python -m venv env source env/bin/activate # On Windows: .\env\Scripts\activate
Install dependencies
pip install -r requirements.txt
Set up .envCreate a .env file with your DB and JWT config:
DATABASE_URL=postgresql+psycopg2://user:password@host:port/dbname SECRET_KEY=your_jwt_secret
Run migrations
π€ Contributing
Feel free to open issues or submit PRs if you have ideas or want to improve the API.