Tweetipy is an AI-powered personalized Twitter/X daily newsletter and podcast application. The app delivers curated content based on the Twitter profiles you choose to follow, ensuring you never miss out on important updates and tweets from your favorite accounts.
- Personalized Newsletters and Podcasts: Get daily newsletters and podcasts based on the Twitter profiles you follow.
- User Authentication: Sign up and sign in with email/password or Twitter OAuth.
- Profile Management: Update your first name, last name, and preferred Twitter profiles.
- Auto-Suggestion for Profiles: Easily find and follow Twitter profiles with real-time suggestions powered by RAPID API.
- Admin Dashboard: Manage followed profiles, update newsletter preferences, and access newsletters and podcasts.
- Email and Podcast Integration: Receive newsletters and podcasts via email, playable directly from your email app without downloads.
- Session Management: Secure user sessions with Passport and Redis.
The project is structured with two main directories: Server
and Client
.
- Client: Frontend built with Vite, TypeScript, and React.
- Server: Backend built with Node.js, Express and TypeScript.
-
Frontend:
- Vite
- React
- CSS
- Tailwind
- jQuery
- Axios
- TypeScript
-
Backend:
- Express
- TypeScript
- MongoDB
- Redis
- Restful API
- Passport (Local and Twitter strategies)
- SendGrid API (for email verification)
- RAPID API (for Twitter profile suggestions and tweet fetching)
- Google Gemini AI API (for newsletter generation)
- Text-to-Speech Podcast API (for podcast generation)
- Node Cron (for scheduling daily newsletters and podcasts)
-
Tools:
- Docker
- Vite
- Postman
- Version Control
- Jest
-
Clone the repository:
git clone https://github.com/hasanpeal/Tweetipy.git
-
Navigate to the project directory:
cd Tweetipy
-
Install dependencies for both the client and server:
cd Client npm install cd ../Server npm install
-
Create a
.env
file in theServer
directory and add your environment variables:MONGO_URI=<your_mongo_uri> REDIS_URL=<your_redis_url> SESSION_SECRET=<your_session_secret> SENDGRID_API_KEY=<your_sendgrid_api_key> RAPIDAPI_KEY=<your_rapidapi_key> GOOGLE_GEMINI_API_KEY=<your_google_gemini_api_key> TTS_API_KEY=<your_text_to_speech_api_key> TWITTER_CONSUMER_KEY=<your_twitter_consumer_key> TWITTER_CONSUMER_SECRET=<your_twitter_consumer_secret> TWITTER_CALLBACK_URL=<your_twitter_callback_url>
-
Start the development server:
cd ../Client npm run dev cd ../Server npm run dev
- Visit the deployed application at Tweetipy.
- Sign up or sign in using your email and password or Twitter account.
- Configure your daily newsletter preferences and select Twitter profiles to follow.
- Access your personalized newsletters and podcasts via email or the admin dashboard.
We welcome contributions to enhance Tweetipy! To contribute, please follow these steps:
- Fork the repository.
- Create a new branch for your feature or bug fix.
- Make your changes and commit them with descriptive messages.
- Push your changes to your forked repository.
- Open a pull request to the main repository.
This project is licensed under the MIT License. See the LICENSE file for more details.
For any inquiries or feedback, please contact us at [email protected]