base on Brevity is a real-time news app that delivers concise updates with infinite scrolling, personalized feeds, and category browsing. Features include search, sharing, news chatbot, notifications, text-to-speech, tutorials, and custom themingโbuilt for a smooth and engaging experience. <div align="center">
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/Brevity_white.png" width="200"/>
<h1>๐ Brevity - Short, Smart, Straight to the point</h1>
<p>
<b>Stay informed effortlessly with real-time news, seamless navigation, and a personalized reading experience.</b>
</p>
<p>
<img src="https://img.shields.io/badge/Flutter-3.29.2-blue?logo=flutter" alt="Flutter Version" />
<img src="https://img.shields.io/badge/Dart-3.7.2-blue?logo=dart" alt="Dart Version" />
<a href="LICENSE">
<img src="https://img.shields.io/badge/License-MIT-green" alt="License" />
</a>
<img src="https://img.shields.io/badge/Version-2.1.0-orange" alt="Version" />
<a href="https://discord.gg/csnXFwPGUb">
<img src="https://img.shields.io/badge/Discord-Join%20Community-7289da?style=flat&logo=discord&logoColor=white" alt="Join Discord" />
</a>
</p>
<table align="center">
<thead align="center">
<tr border: 2px;>
<td><b>๐ Stars</b></td>
<td><b>๐ด Forks</b></td>
<td><b>๐ Issues</b></td>
<td><b>๐ Open PRs</b></td>
</tr>
</thead>
<tbody>
<tr>
<td><img alt="Stars" src="https://img.shields.io/github/stars/Yash159357/BREVITY?style=flat&logo=github"/></td>
<td><img alt="Forks" src="https://img.shields.io/github/forks/Yash159357/BREVITY?style=flat&logo=github"/></td>
<td><img alt="Issues" src="https://img.shields.io/github/issues/Yash159357/BREVITY?style=flat&logo=github"/></td>
<td><img alt="Open Pull Requests" src="https://img.shields.io/github/issues-pr/Yash159357/BREVITY?style=flat&logo=github"/></td>
</tr>
</tbody>
</table>
</div>
<img src="https://raw.githubusercontent.com/alo7lika/daccotta/refs/heads/dev/Images/212284100-561aa473-3905-4a80-b561-0d28506553ee.gif" width="900">
### This project is now OFFICIALLY accepted for <img src="https://raw.githubusercontent.com/Tarikul-Islam-Anik/Animated-Fluent-Emojis/master/Emojis/Smilies/Heart%20on%20Fire.png" alt="Heart on Fire" width="40" height="40" />
<div align="center">
<table>
<tr>
<th>Program Name</th> <th>Program Logo</th> <th>Program Description</th>
</tr>
<tr>
<td><a href="https://gssoc.girlscript.tech/">GirlScript Summer of Code</a></td>
<td width="300"><img src=".github/assets/GSSOC.png" width="250" height="auto" loading="lazy" alt="GSSoC 24"/></td>
<td><span style="font-size: 0.9em;">GirlScript Summer of Code is a three-month-long Open Source Program conducted every summer by GirlScript Foundation. It is an initiative to bring more beginners to Open-Source Software Development.</span></td>
</tr>
</table>
</div>
๐ **Exciting News!** Brevity has been selected for **GirlScript Summer of Code (GSSoC) 2025**!
๐ข **Want to contribute?** Join our community Discord server to connect with maintainers and fellow contributors. We welcome all contributors - from beginners to experienced developers. Let's build something amazing together! ๐
<img src="https://raw.githubusercontent.com/alo7lika/daccotta/refs/heads/dev/Images/212284100-561aa473-3905-4a80-b561-0d28506553ee.gif" width="900">
## ๐ Table of Contents
1. [โจ App Demo](#-app-demo)
2. [๐ Features](#-features)
3. [๐ ๏ธ Tech Stack](#๏ธ-tech-stack)
4. [๐ Folder Structure](#-folder-structure)
5. [๐ฎ Future Plans](#-future-plans)
6. [๐ค Contributing](#-contributing)
7. [๐ License](#-license)
8. [๐ Connect With Us](#-get-in-touch)
9. [๐ฌ Join the Conversation](#-join-the-conversation)
---
## โจ App Demo
<table>
<tr>
<td align="center">
<a href="https://youtube.com/shorts/W4c6BxAAhHM?feature=share" target="_blank">
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Video.jpeg" width="250"/>
<br/>
<b>BrevityVideo1</b>
</a>
<p>Login & SignUp</p>
</td>
<td align="center">
<a href="https://youtube.com/shorts/C1DUbo6K_2Y?feature=share" target="_blank">
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Video.jpeg" width="250"/>
<br/>
<b>BrevityVideo2</b>
</a>
<p>Home Screen and Chatbot</p>
</td>
<td align="center">
<a href="https://youtube.com/shorts/wUJMbrjznGQ?feature=share" target="_blank">
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Video.jpeg" width="250"/>
<br/>
<b>BrevityVideo3</b>
</a>
<p>Additional Features</p>
</td>
</tr>
</table>
<details>
<summary>๐ฑ View App Screenshots</summary>
<p align="center">
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Brevity.png" width="22%"/>
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Login.png" alt="Profile Screen" width="22%"/>
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Theme.png" alt="Profile Screen" width="22%"/>
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Home.png" alt="Transactions Screen" width="22%"/>
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Chatbot.png" alt="Analytics Screen" width="22%"/>
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/EOS.png" alt="Profile Screen" width="22%"/>
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/Search.png" alt="Profile Screen" width="22%"/>
</p>
</details>
---
## ๐ Features
### Core Features
- **Personalized News Feed** โค๏ธ - Like and dislike articles to shape your personal news feed. Our smart algorithm learns what you love and delivers more of it!
- **AI-Powered Q&A** ๐ค - Get instant summaries and ask questions about any news article with our integrated AI.
- **Listen on the Go** ๐ง - Turn any news article into an audio experience with our Text-to-Speech feature. Perfect for your commute, workout, or when you're busy.
- **Share With a Tap** ๐ - Effortlessly share compelling stories with friends and family across your favorite social platforms.
- **Seamless Social Login** ๐ - Get started in seconds with secure and easy sign-in using Google via OAuth.
- **Infinite Scrolling** ๐ - Dive into an endless, dynamically loading stream of news. Your discovery never has to stop.
- **Powerful Search** ๐ - Quickly find news articles by keywords, topics, or categories with our fast and intuitive search.
- **Customizable Themes** ๐จ - Make the app yours! Personalize your reading experience by selecting from 8 beautiful themes, including a battery-saving dark mode.
### Technical Highlights
- **Scalable Backend API** ๐ โ Powered by a robust and secure backend built with Node.js, Express, and MongoDB, designed for high performance and real-time data delivery.
- **Predictable State Management** โก โ Built with flutter_bloc for a decoupled, testable, and highly scalable state layer.
- **Optimized Caching** ๐ถ โ Leverages cached_network_image and advanced caching strategies to minimize data usage and ensure instant image loading.
- **Polished & Engaging UI** โจ โ Utilizes custom animations, shimmer loading effects, and a meticulous design to create intuitive user experience.
- **Modular Architecture** ๐๏ธ โ Clean and maintainable codebase with a well-structured project setup.
---
## ๐ ๏ธ Tech Stack
<p align="center">
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/flutter/flutter-original.svg" alt="Flutter" width="50" height="50"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/nodejs/nodejs-original-wordmark.svg" alt="Node.js" width="50" height="50"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/express/express-original.svg" alt="Express.js" width="50" height="50"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/firebase/firebase-original-wordmark.svg" alt="Firebase" width="50" height="50"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/git/git-original.svg" alt="Git" width="50" height="50"/>
<img src="https://cdn.jsdelivr.net/gh/devicons/devicon@latest/icons/vscode/vscode-original.svg" alt="VS Code" width="50" height="50"/>
</p>
- **Frontend**: Flutter, Dart, BLoC, Shared Preferences
- **Website**: HTML, CSS, JS
- **Backend**: Node.js, Express.js, Mongoose, Cloudinary, Firebase, JWT, Passport
- **APIs**: News API, Gemini API
---
## ๐ Folder Structure
```bash
brevity/
โโโ .github/ # GitHub workflows, CI/CD pipelines, issue/PR templates
โโโ assets/ # Project-wide static assets (images, logos, icons, etc.)
โโโ flutter/ # Mobile app source code (Dart, BLoC, models, views, controllers)
โโโ server/ # Backend (Node.js, Express.js, MongoDB, APIs, authentication)
โโโ website/ # Frontend website (HTML, CSS, JavaScript)
โโโ README.md # Main project documentation and setup guide
โโโ .gitignore # Git ignore rules for node_modules, build files, etc.
```
## ๐ฎ Future Plans
We're constantly evolving and have some exciting ideas in the pipeline to make Brevity even more engaging and trustworthy:
- **60-word Summaries** โ๏ธ - Every article condensed into a crisp, 60-word summary for quick insights, saving you even more time.
- **Smart Notifications** ๐ - Personalized alerts for breaking news and topics you care about, delivering crucial updates.
- **Offline Access** ๐ฅ - Save articles for later and read them anytime, anywhere, even without an internet connection.
- **Multi-Language Support** ๐ - Expanding our reach by offering news content and the app interface in multiple languages.
- **Daily Audio Briefings** ๐๏ธ - Curated daily news playlists and podcast-style summaries to start your day informed.
- **Enhanced AI Chat** ๐ง - Continuously improving our AI's speed, accuracy, and conversational abilities for even better answers.
- **Website** ๐ป - A companion website for all information about brevity.
---
## ๐ค Contributing
We welcome contributions! Please read our [Contributing Guidelines](.github/CONTRIBUTING.md) before submitting a pull request.
<div>
<h2><img src="https://fonts.gstatic.com/s/e/notoemoji/latest/1f49e/512.webp" width="30" height="30"> Our Valuebale Contributors</h2>
</div>
<i>Thank you to all our contributors for making Brevity amazing! ๐</i>
<!-- readme: contributors -start -->
<table>
<tbody>
<tr>
<td align="center">
<a href="https://github.com/saysamarth">
<img src="https://avatars.githubusercontent.com/u/125565160?v=4" width="100;" alt="saysamarth"/>
<br />
<sub><b>saysamarth</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Yash159357">
<img src="https://avatars.githubusercontent.com/u/83387328?v=4" width="100;" alt="Yash159357"/>
<br />
<sub><b>Yash159357</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/HappySR">
<img src="https://avatars.githubusercontent.com/u/149225300?v=4" width="100;" alt="HappySR"/>
<br />
<sub><b>HappySR</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/PearlGrell">
<img src="https://avatars.githubusercontent.com/u/185500672?v=4" width="100;" alt="PearlGrell"/>
<br />
<sub><b>PearlGrell</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/garys-demons">
<img src="https://avatars.githubusercontent.com/u/178498812?v=4" width="100;" alt="garys-demons"/>
<br />
<sub><b>garys-demons</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/mahi23jj">
<img src="https://avatars.githubusercontent.com/u/168651583?v=4" width="100;" alt="mahi23jj"/>
<br />
<sub><b>mahi23jj</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://github.com/Vrushabh102">
<img src="https://avatars.githubusercontent.com/u/127824424?v=4" width="100;" alt="Vrushabh102"/>
<br />
<sub><b>Vrushabh102</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/taralshah09">
<img src="https://avatars.githubusercontent.com/u/134496373?v=4" width="100;" alt="taralshah09"/>
<br />
<sub><b>taralshah09</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/harshit-shekhar">
<img src="https://avatars.githubusercontent.com/u/127797166?v=4" width="100;" alt="harshit-shekhar"/>
<br />
<sub><b>harshit-shekhar</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Shibai419">
<img src="https://avatars.githubusercontent.com/u/224984725?v=4" width="100;" alt="Shibai419"/>
<br />
<sub><b>Shibai419</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/alzz-26">
<img src="https://avatars.githubusercontent.com/u/56277823?v=4" width="100;" alt="alzz-26"/>
<br />
<sub><b>alzz-26</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/suto6">
<img src="https://avatars.githubusercontent.com/u/169282051?v=4" width="100;" alt="suto6"/>
<br />
<sub><b>suto6</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://github.com/Vriti62">
<img src="https://avatars.githubusercontent.com/u/136335873?v=4" width="100;" alt="Vriti62"/>
<br />
<sub><b>Vriti62</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/malilalilaaa">
<img src="https://avatars.githubusercontent.com/u/116088295?v=4" width="100;" alt="malilalilaaa"/>
<br />
<sub><b>malilalilaaa</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Vinuthna-Pesara">
<img src="https://avatars.githubusercontent.com/u/172952195?v=4" width="100;" alt="Vinuthna-Pesara"/>
<br />
<sub><b>Vinuthna-Pesara</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Unnati-coder25">
<img src="https://avatars.githubusercontent.com/u/174034852?v=4" width="100;" alt="Unnati-coder25"/>
<br />
<sub><b>Unnati-coder25</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/22sakshiagarwal">
<img src="https://avatars.githubusercontent.com/u/150451687?v=4" width="100;" alt="22sakshiagarwal"/>
<br />
<sub><b>22sakshiagarwal</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/NavyasreeBalu">
<img src="https://avatars.githubusercontent.com/u/182435415?v=4" width="100;" alt="NavyasreeBalu"/>
<br />
<sub><b>NavyasreeBalu</b></sub>
</a>
</td>
</tr>
<tr>
<td align="center">
<a href="https://github.com/dharapandya85">
<img src="https://avatars.githubusercontent.com/u/109461918?v=4" width="100;" alt="dharapandya85"/>
<br />
<sub><b>dharapandya85</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Atomic-Shadow7002">
<img src="https://avatars.githubusercontent.com/u/191123414?v=4" width="100;" alt="Atomic-Shadow7002"/>
<br />
<sub><b>Atomic-Shadow7002</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Apurva-Deodhar">
<img src="https://avatars.githubusercontent.com/u/121672985?v=4" width="100;" alt="Apurva-Deodhar"/>
<br />
<sub><b>Apurva-Deodhar</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/vijaykarthiktk">
<img src="https://avatars.githubusercontent.com/u/39937989?v=4" width="100;" alt="vijaykarthiktk"/>
<br />
<sub><b>vijaykarthiktk</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/aaryapoyrekar">
<img src="https://avatars.githubusercontent.com/u/138993783?v=4" width="100;" alt="aaryapoyrekar"/>
<br />
<sub><b>aaryapoyrekar</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/vansh909">
<img src="https://avatars.githubusercontent.com/u/133160909?v=4" width="100;" alt="vansh909"/>
<br />
<sub><b>vansh909</b></sub>
</a>
</td>
</tr>
<tbody>
</table>
<!-- readme: contributors -end -->
---
## ๐ License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
## โจ Get In Touch
### ๐งโ๐ป Project Admins
<table>
<tr>
<td align="center" width="50%">
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/samarth.jpg" width="100" style="border-radius: 50%;"/>
**Samarth Sharma**
*Software Developer & Project Admin*
[](https://github.com/saysamarth)
[](https://www.linkedin.com/in/saysamarth/)
[](mailto:
[email protected])
</td>
<td align="center" width="50%">
<img src="https://raw.githubusercontent.com/Yash159357/NewsAI/main/assets/logos/hidden_images/yash.jpg" width="100" style="border-radius: 50%;"/>
**Yash**
*Software Developer & Project Admin*
[](https://github.com/Yash159357)
[](https://www.linkedin.com/in/yash-kumar101/)
[](mailto:
[email protected])
</td>
</tr>
</table>
### ๐ฌ Join the Conversation
The heart of our project is the community. Join our Discord server to ask questions, share your contributions, and collaborate with us in real-time!
<p align="center">
<a href="https://discord.gg/csnXFwPGUb">
<img src="https://img.shields.io/badge/Discord-Join%20Our%20Community-5865F2?style=for-the-badge&logo=discord&logoColor=white" alt="Join Discord" />
</a>
</p>
---
<p align="center">
Made with โค๏ธ by us
</p>
", Assign "at most 3 tags" to the expected json: {"id":"14360","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"