Utility Studio: Quick AI powered utilities
Tags: refinehackathon, appwrite, refine, react
Published: 2023-07-19 13:37:20

## What I built

**Utility Studio**: Where users can quickly come and drop their documents, youtube links, text, web links and generate/extract textual information.


![Utility studio mock up](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mcv9lg6dfv461mxy3nrm.png)


For documents and web links, the app can extract text information from them as well summarise the content.

For youtube links, the app can allow to download the audio/video, get the subtitles and generate summary of the video based on those subtitles.

### Category Submission:
 
- Most Technical Impressive
- Best Project built using Material UI


### App Link

[Utility Studio](https://utility-studio.vercel.app)

![Vercel](https://therealsujitk-vercel-badge.vercel.app/?app=utility-studio)
Hosted on vercel


### Screenshots 

- Landing Page

![Home Page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e93gb2916p4ynois0fgd.png)

- Studio Page

![Utility Studio Page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uqnga6ox4ompuw2s6lxc.png)

- Youtube Studio Page

![Youtube Studio Page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cv3pbgnxppd2hm9v6adl.png)

- Documents Studio Page

![Documents Studio Page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kqi4oo38051gw9rxnoro.png)

- Links Studio Page

![Links Studio Page](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fcz3v4r8b6s5qpzhsiel.png)

### Description 

Utility Studio is a versatile web application designed to simplify the process of extracting textual information from various types of content. With its user-friendly interface and powerful features, it serves as a one-stop platform for users to upload and analyze documents, YouTube videos, text snippets, and web links.

### Features:
- Youtube
   - Audio and Video Download
   - Get Subtitles/Caption from video link as text
   - Summarise the generated subtitles as text
- Documents
   - Extract text from the uploaded docx/pdf file
   - Summarise text from the extracted content
- Text
   - Simple textual summary of the provided text
- Links
   - Extract summary/key points of the provided links

*PS: I also tried image background remover utility but  due to the constrained environment of cloud functions, the memory-intensive and processing requirements of this feature exceed the scope of the project.*


#### Future Scope

I might try to add in more utilities like time zone converter, text translator/detection, RSS feed summarizer, etc.  

### Link to Source Code 

The project is hosted on [GitHub](https://github.com/mr-destructive/utility-studio)
{% embed https://github.com/mr-destructive/utility-studio %}


### Permissive License 

[MIT License](https://github.com/Mr-Destructive/utility-studio/blob/main/LICENSE)

## Background (What made you decide to build this particular app? What inspired you?) 

I decided to build Utility Studio to address the need for a centralized platform where users can easily upload various types of content and extract relevant textual information from them. The inspiration behind this project was to create a versatile tool that simplifies the process of obtaining key insights from different content sources, such as documents, webpages, and YouTube videos.

### How I built it (How did you utilize refine? Did you learn something new along the way? Pick up a new skill?) 

I am more of an backend developer (django and golang), I have very rarely used javascript/typescript for creating a whole project. However this time around with the help of refine and next js it became a lot easier. Also it was a great experience with appwrite for creating this project. 

The documentation of refine is self-sufficient for creating a project, the cli command `swizzle` is really handy and does integrate well. One of the best features will have to be the [refine.new](https://refine.new/) app, this makes starting a project with basic requirements with a few clicks.

Both the platforms/tools appwrite and refine are great way to jump-start a full stack application in minutes.

Key things I learnt by creating this project:
- Next JS app structure (creating pages and api routes)
- Appwrite Cloud functions
- Integrating PaLM API on the web(through fetch api)
- Integrating Python libraries with cloud functions(pytube, youtube-transcript-api, python-docx, pypdf2)
- Using MaterialUI in a React project


### Additional Resources/Info

- [refine core api documentation](https://refine.dev/docs/api-reference/core/)
- [30 days of appwrite series](https://30days.appwrite.io/)
- [PaLM API Generate Text Docs](https://developers.generativeai.google/api/rest/generativelanguage/models/generateText)
- [Pytube documentation](https://pytube.io/en/latest/user/streams.html#)

Thanks for reading, have a great time. Happy Coding:)