This project is an AI-powered changelog generator built as part of the Greptile Software Engineer Interview Project. It aims to simplify the process of creating changelogs for developers by leveraging AI to summarize commit messages and generate user-friendly changelog entries.
The application consists of two main parts:
Clone the repository:
git clone https://github.com/Aadarsh-guru/changelog-generator.git
cd changelog-generator
Install dependencies:
npm install
Set up environment variables:
.env.sample
file to .env.local
GEMINI_API_KEY="your_gemini_api_key_here"
DATABASE_URL="your_neon_database_url_here"
Run the development server:
npm run dev
Open http://localhost:3000 in your browser to see the application.
User-Centered Design: The interface is designed to be intuitive and easy to use, with clear instructions and input fields for both manual entry and GitHub import.
AI Integration: We chose to use Google's Gemini API for its advanced language understanding capabilities, allowing for more accurate and relevant changelog summaries.
Markdown Support: Changelogs are presented in both raw text and rendered markdown formats, catering to different user preferences and use cases.
Shareable Links: Each generated changelog has a unique, shareable link, making it easy for developers to distribute changelogs to their users.
Responsive Design: The application is built with a mobile-first approach, ensuring a good user experience across various devices and screen sizes.
Database Integration: We use a Neon PostgreSQL database to store generated changelogs, allowing for persistence and easy retrieval of past entries.
Modern Tech Stack: The choice of Next.js 14, TypeScript, and Tailwind CSS ensures a modern, type-safe, and easily maintainable codebase.
This AI-powered changelog generator aims to streamline the process of creating and maintaining changelogs for developers. By automating the summarization of changes and providing an easy-to-use interface, we hope to save developers time and improve the quality of changelogs for end-users.