• Stars
    star
    135
  • Rank 269,297 (Top 6 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

WriterAI is an AI based content writing tool that helps users easily write high quality emails, blogs, letters, thesis and other stuff. One can also share their project with others and work as a team.

WriterAI

WriterAI is an AI based content writing tool that helps users easily write high quality emails, blogs, letters, thesis and other stuff. One can also share their project with others and work as a team.

This project is developed by Team 404 for Hashnode x PlanetScale hackathon. This team comprises of Ishant and Vaibhav.

About 🎯

WriterAI is a web app where a user can make use of artificial intelligence to quickly write high quality content. Just provide the AI with a sample input of one to two lines and the AI will generate 5 different paragraphs for you!

Blog ✍️

To know more about how we built this project, read my article here:
https://ishantchauhan.hashnode.dev/writerai-a-revolutionary-ai-based-content-writing-tool

Demo

You can experience the power of WriterAI by visiting: https://writerai.netlify.app/

Video Demo

Here is a short video on how to use WriterAI

Insights Into Project 🔎

WriterAI Features 🔥

  • Auto Text Completion - Generates upto 120 words with an input of just 5 words
  • Inbuilt Text Editor - For writing your blogs, emails, thesis, letters and other stuff
  • Project Sharing - You can share your project with unlimited number of users and work in teams
  • Markdown Support - You can add images, tables, hyperlinks and code snippets in your projects by using markdown
  • Project Download - You can download your projects in JSON, XML and Markdown format
  • User Authentication - Supports Email-Password authentication and Gmail authentication
  • User Authorization - WriterAI keeps on validating the user's auth tokens every 5 minutes automatically

📸 Screenshots 💻

📸 Screenshots 📱

Technical details 💡

  • The frontend of WriterAI is created using technologies like CSS, ReactJS and MaterialUI. WriterAI is highly responsive and is tested on all popular browsers like Chrome, Safari and Opera Mini. For handling the react state\s, ContextAPI is used. The frontend code is highly structured and BEM convention is followed throughout the entire CSS code.

  • The backend of WriterAI is built using Ktor which is a Kotlin based framework for writing server side code! For storing the user's data, we have used PlatenScale which is a highly scalable MySQL database platform which supports horizontal sharding and unlimited connections. For authentication, we have used Firebase SDK. And for deployment of the backend, we have used Linode.

Setup [Frontend] 📝

If you want to clone this project and customize it further, you need to do a couple of tasks first:

  • Clone this project. You can directly download the source code, or you can use the CLI in terminal
  • Once successful, open your terminal in the project folder and write npm install
  • After this, in the root folder of the project, create a new file with the exact name of ".env"
  • In the .env file, write:

REACT_APP_FIREBASE_API_KEY=XXXXXXXX
REACT_APP_FIREBASE_AUTH_DOMAIN=XXXXXXXX
REACT_APP_FIREBASE_PROJECT_ID=XXXXXXXX
REACT_APP_FIREBASE_STORAGE_BUCKET=XXXXXXXX
REACT_APP_FIREBASE_MESSAGING_SENDER_ID=XXXXXXXX
REACT_APP_FIREBASE_APP_ID=XXXXXXXX
REACT_APP_FIREBASE_MEASUREMENT_ID=XXXXXXXX
REACT_APP_AI_API_KEY=XXXXXXXX
REACT_APP_BASE_URL=XXXXXXXX
  • Get the value of first 7 variables by creating a firebase account, enabling user authentication and downloading the firebase configuration json file
  • Get the API key to enable AI support from OpenAI
  • Get a domain and enable SSL on it in order to use it. Not doing so may result in CORS errors. See backend documentation for more.
  • Save the file and then in frontend and backend terminal, write npm start and enjoy the project :)

Built With [Frontend] 🛠

  • GPT-3 AI - Generative Pre-trained Transformer 3 is an autoregressive language model that uses deep learning to produce human-like text
  • ReactJS - ReactJS is a javascript library created by Facebook. This library lets you create beautiful web pages in couple of minutes
  • MaterialUI - MaterialUI is a ReactJS library developed by google that lets you create beautiful UI elements in a quick go!
  • React Router DOM - React Router DOM is a NPM package that easily lets you tell the app about which web page or screen component to render depending upon a particular URL
  • Lottie React - Lottie React is an npm package that lets you render Lottie JSON animations on the web page
  • Axios - Axios is an NPM package that lets you easily send HTTP requests to a particular URL
  • JsonWebToken - It is a package that lets you make use of JWT authentication in your app
  • Firebase - Firebase is a platform developed by Google for adding backend functionalities like authentication in projects.

Project Structure [Frontend] 📂

# Root Package
.
├── src                 # Our core frontend code consisting of all views and react components
|   ├── components      # Contains UI component files for dialog boxes, notifications etc
|   ├── other           # Contains files for constant variables and placeholder data
|   ├── components      # Contains UI component files for dialog boxes, snackbars, single user in inbox etc
│   ├── pages           # Contains files to represent the screen for each route like LandingPage.js for '/', HomePage.js for '/home' etc
│   ├── res             # Contains resource files for animations
│   ├── util            # Contains utility functions for formatting strings and dates
│   ├── security        # Contains firebase configuration, firebase methods and other security related functions
│   ├── style           # Contains configurations for MaterialUI setup
│   ├── App.css         # CSS file to provide a common styling to our app such as font family and box sizing
│   ├── index.css       # Currently of no use, however you can use it to provide a global style to your app
│   ├── App.js          # Our main frontend ReactJS file that is executed when server starts
│   ├── AppContext.js   # ReactJS ContextAPI file to allow all components access a particular react state easily
│   └── index.js        # A ReactJS file to render all the data on web page
└──

Production Build 💻

  • To build the project for production purpose, open the frontend folder and write npm run build
  • Once the build is completed, simply write npm start to run the website in production mode

Setup [Backend] 🛠

For this, you can refer to the Backend Repository of WriterAI to setup and deploy the backend

Attribution

The project is built using PlanetScale for the Hashnode X PlanetScale Hackathon.

Contact

For any queries, you can mail me at [email protected]

More Repositories

1

BikeRush

BikeRush is an android app that makes use of Google Map's API and user's GPS location to track his journey and saves it into the device's local storage
Kotlin
29
star
2

PasswordManager

A highly secure app to store and manage your passwords, This app makes use of NDK, 2 Layers of AES encryption and Proguard to securely store your credentials
Kotlin
23
star
3

Musicify

Musicify is a Spotify inspired music player android app. It fetches the songs from firebase cloud storage and makes use of android's exoplayer to play them to the user
Kotlin
15
star
4

DeskViewer

DeskViewer is a cross platform remote desktop controlling application that allows users to access and control a remote computer from anywhere in the world
JavaScript
14
star
5

DocuBox

DocuBox is a cloud file storing app built using Kotlin, Nodejs and MongoDb. You can upload, view, download and share all kinds of files using this app
JavaScript
13
star
6

SpaceChat

A socket.io based real time chat app where you can perform one-to-one chats as well as group chats! Built using MERN stack, this project implements all core functionalities like User Authentication, Web Sockets, CRUD Operations, Routing and much more!
JavaScript
13
star
7

Speed

A chrome extension to increase your reading speed by 2x
JavaScript
9
star
8

NoteScout

A full stack web application to easily create and organize your notes. Built on MERN stack, this project implements all core functionalities like User Authentication, CRUD Operations, Routing and much more!
JavaScript
8
star
9

ChatBot

ChatBot is a simple android app that can chat with you. You can do multiple things with this app such as asking it to solve a math equation or searching something on google
Kotlin
5
star
10

SpaceFeed

A social media platform where users can upload images, like and comment on posts, follow and unfollow others, receive notifications and do a lot more!
JavaScript
5
star
11

NewsBlender

News Blender is a responsive news web app that fetches data from newsapi.org and shows them to the users according to the selected category or search input
JavaScript
4
star
12

FlickFeed

A social network site with advanced caching, optimistic updates, infinite scroll pagination and much more
TypeScript
3
star
13

ishantchauhan710

2
star
14

Photon

Photon is an image editing desktop app. It comes with an inbuilt color picker and lets user pick an image and adjust its brightness, contrast, saturation, rotation, blur etc
JavaScript
2
star
15

Javascript-Multiplication-Table-Game

A game which keeps generating a multiplication problem over a timespan of 60 seconds and eventually ending up returning your score which apparently tells your brain's calculation speed! Made with HTML, CSS and Javascript!
JavaScript
2
star
16

WorkBucket

Work Bucket is a Trello inspired mini project management web app that lets you put all your tasks into buckets and move them from one bucket to another through a drag and drop mechanism
TypeScript
2
star
17

SoftUI

A neumorphism and glassmorphism based UI library for React, React Native and NextJS applications
TypeScript
2
star
18

FileUpload-CloudBucket-NodeJs-Example

JavaScript
1
star