AIrticle is an innovative web application designed to harness the capabilities of GPT-4 for generating high-quality newsletters based on user-defined topics or prompts. Crafted for those who value precision and efficiency, AIrticle is ready to revolutionize the way you create articles & newsletters.
- π AIrticle - AI-Powered Newsletter Generator
- π Demo: (Coming Soon)
- π Support:
- π§ Email
- π± Telegram
- π Report Bugs (Link to your project's issues tab)
- π FAQs (Link to FAQs)
π Built with cutting-edge technologies, Timestamp:
2023-10-10
- β
Up-to-date dependencies
- β
Database
:PostgreSQL
- β
Deployment on
Zeet
|Docker
- β
Automated testing with
Github Actions
System Dependencies
- Python 3.11.6
- PostgreSQL 16.0
Step 1 - Clone the repository
$ git clone https://github.com/Jasiel-Stark8/AIrticle.git
$ cd AIrticle
Step 2 - Set up the environment and start the app
# For Unix/MacOS
$ virtualenv env
$ source env/bin/activate
$ pip3 install -r requirements.txt
$ flask run --debug
Environment Variables
OPENAI_API_KEY
: Your OpenAI API key.DATABASE_URL
: Your PostgreSQL Database URL.
Visit http://localhost:5000
in your browser. The app should be up & running.
- Check is databse is running
If not then start it:
sudo systemctl status postgresql.service
follow the rest supposing youve set up postgresql alreadysudo systemctl start postgresql.service
sudo -i -u postgres psql airticle \dt \d \d user SELECT * FROM "user";
- AI-Powered Content Generation: Utilizes GPT-4 to produce newsletters tailored to user input.
- Intuitive User Interface: Designed for ease of use, ensuring a seamless user experience.
- Export Options: Allows users to export their articles in various formats (DOC, DOCX, PDF, TXT).
A commercialized version of this app will be available, allowing users without an OpenAI API key to generate content.
.
βββ AIrticle RESTful API Endpoints.txt
βββ api
βΒ Β βββ __init__.py
βΒ Β βββ v1
βΒ Β βββ __init__.py
βΒ Β βββ views
βΒ Β βββ auth.py
βΒ Β βββ export_article.py
βΒ Β βββ generate.py
βΒ Β βββ __init__.py
βΒ Β βββ save_article.py
βββ app.py
βββ AUTHORS
βββ config.py
βββ database.py
βββ exports
βββ LICENSE
βββ migrations
βΒ Β βββ alembic.ini
βΒ Β βββ env.py
βΒ Β βββ README
βΒ Β βββ script.py.mako
βΒ Β βββ versions
βββ models
βΒ Β βββ article.py
βΒ Β βββ __init__.py
βΒ Β βββ insert_cli.txt
βΒ Β βββ user.py
βββ README.md
βββ requirements.txt
βββ static
βΒ Β βββ css
βΒ Β βΒ Β βββ articles.css
βΒ Β βΒ Β βββ generate.css
βΒ Β βΒ Β βββ landing.css
βΒ Β βΒ Β βββ login.css
βΒ Β βΒ Β βββ signup.css
βΒ Β βββ js
βΒ Β βββ articles.js
βΒ Β βββ generate.js
βΒ Β βββ gen_functionality.js
βΒ Β βββ landing.js
βΒ Β βββ login.js
βΒ Β βββ signup.js
βββ templates
βΒ Β βββ articles.html
βΒ Β βββ generate.html
βΒ Β βββ landing.html
βΒ Β βββ login.html
βΒ Β βββ signup.html
βββ tree
12 directories, 40 files
/signup
-['GET', 'POST']
/login
-['GET', 'POST']
/logout
-['POST']
(usually, logging out is a POST operation)/update_username
-['PUT']
/update_password
-['PUT']
/username
-['GET']
/user_info
-['GET']
(To provide additional user info if needed)
/generate
-['POST']
/view_articles
-['GET']
/edit_article/<article_id>
-['GET', 'PUT']
(use article_id as a parameter)/new_article
-['POST']
(To save a new article, similar to save but initializes a new article)/save_article
-['POST', 'PUT']
(Could also allow PUT for updates)/delete_article/<article_id>
-['DELETE']
(To delete an article)
/export/<article_id>
-['POST']
(use article_id as a parameter)
/auto_save
-['POST']
/search_articles
-['GET']
(To allow users to search their saved articles)/forgot_password
-['POST', 'PUT']
(In case user forgets the password)/activate_account
-['GET']
(If you want to include email-based account activation)
-
Languages:
- Python (Primary backend language)
- JavaScript (Frontend scripting)
- HTML (Webpage structure)
- CSS (Styling)
-
Frameworks:
- Flask (Backend server handling)
- Bootstrap (Responsive frontend styling)
-
API:
- OpenAI GPT-4 (Content generation)
-
Database:
- PostgreSQL (Reliable storage solution)
-
Deployment:
- Docker (Containerization solution for reproducible builds)
- Vercel (For front-end deployment and serverless functions)
-
Version Control:
- Git (Codebase version tracking)
- GitHub (Code repository and collaboration)
- Description: Our platform offers simple email and password-based authentication. New users can quickly create an account, and returning users can seamlessly log in.
- Steps:
- Sign Up: Navigate to the sign-up page. Enter your email and create a password. Submit the form to register.
- Log In: Navigate to the log-in page. Enter your registered email and password. Submit the form to access the dashboard.
- Description: The user dashboard is a centralized area where users can access saved articles and initiate new content generation requests.
- Steps:
- Once logged in, the dashboard is the primary view. Here, you can see a list of your saved articles.
- Click on an article title to view, edit, or export the article.
- Use the "Generate New Content" button to start the content generation process.
- Description: Input topics or keywords to receive AI-generated content. You have the option to edit the content directly on the platform.
- Steps:
- From the dashboard, click on "Generate New Content."
- Input your topic or keywords in the provided field.
- Click "Generate" to receive AI-produced content.
- You can now edit the content as you see fit, with changes being automatically saved.
- Description: After finalizing the content, users have the option to save their articles in multiple formats including DOC, DOCX, PDF, and TXT.
- Steps:
- Navigate to the article you wish to export.
- Choose the desired format from the "Export As" dropdown.
- Click the "Export" button. Your article will be downloaded in the selected format.
For more features and priority support, consider upgrading to our PRO version.
- AIrticle PRO - Product Page (COMING SOON)
- AIrticle PRO Demo - LIVE Demo (COMING SOON)
We welcome contributions! See our Contributor's Guide.
AIrticle is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). Open-source project crafted with β€οΈ by Jason Quist.