From 853375bc2bed39d7e2f79b18c30e896744482e14 Mon Sep 17 00:00:00 2001 From: oguzpancuk <44545164+oguzpancuk@users.noreply.github.com> Date: Mon, 16 Dec 2024 19:01:56 +0300 Subject: [PATCH 1/2] Implemented Fake Post Generation Fake post generation is implemented, using Faker --- .../management/commands/generate_posts.py | 81 +++++++++++++++++++ .../migrations/0010_alter_post_title.py | 18 +++++ backend/marketfeed/models.py | 2 +- backend/requirements.txt | 2 + 4 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 backend/marketfeed/management/commands/generate_posts.py create mode 100644 backend/marketfeed/migrations/0010_alter_post_title.py diff --git a/backend/marketfeed/management/commands/generate_posts.py b/backend/marketfeed/management/commands/generate_posts.py new file mode 100644 index 00000000..cc78c9a2 --- /dev/null +++ b/backend/marketfeed/management/commands/generate_posts.py @@ -0,0 +1,81 @@ +import random +from faker import Faker +from django.core.management.base import BaseCommand +from marketfeed.models import Post +from onboarding.models import User + +class Command(BaseCommand): + help = 'Generate fake data for the Post model' + + def add_arguments(self, parser): + parser.add_argument('total', type=int, help='Number of fake posts to generate') + + def handle(self, *args, **kwargs): + fake = Faker() + total = kwargs['total'] + + economy_topics = [ + f"Why is everyone talking about {fake.bs()}?"[:100], + f"Is {fake.bs()} really the future?"[:100], + f"{fake.company()} just did something amazing with {fake.bs()}!"[:100], + f"I can’t believe how {fake.bs()} is changing the game"[:100], + f"Anyone else seeing the hype around {fake.bs()}?"[:100], + f"{fake.bs()} and what it means for us all"[:100], + f"The cool ways {fake.company()} uses {fake.bs()}"[:100], + f"{fake.currency_name()} in {fake.bs()}—what’s happening?"[:100], + f"Big moves in {fake.bs()}—check this out!"[:100], + f"How {fake.bs()} is reshaping the world"[:100], + f"What’s your take on {fake.bs()} trends?"[:100], + f"Let’s talk about {fake.bs()} innovations"[:100], + f"I just read about {fake.bs()} and it’s wild"[:100], + f"{fake.bs()} in the news—here’s what I think"[:100], + f"Do you think {fake.bs()} is overhyped?"[:100], + f"{fake.bs()} updates—what’s happening now?"[:100], + f"How {fake.company()} is mastering {fake.bs()}"[:100], + f"{fake.bs()} is trending, but why?"[:100], + f"Let’s chat about {fake.bs()} strategies"[:100], + f"What’s so exciting about {fake.bs()}?"[:100] + ] + + economy_contents = [ + f"I’ve been thinking a lot about {fake.bs()} lately. It feels like everywhere I look, someone is talking about how it’s changing the world! What are your thoughts?", + f"{fake.bs()} might sound boring to some, but it’s a topic I can’t stop researching. The way {fake.company()} is involved is fascinating!", + f"Anyone else worried about how {fake.currency_name()} is affecting {fake.bs()}? I think it’s time we started discussing this more seriously.", + f"I just read an article on {fake.bs()}, and it’s blowing my mind. How are companies like {fake.company()} staying ahead of this trend?", + f"Sometimes I wonder if {fake.bs()} is just a fad or if it’s truly the future of {fake.currency_name()} economics. What do you think?", + f"Every time I think I understand {fake.bs()}, something new comes up. It’s like this endless puzzle, especially when you consider what {fake.company()} is doing!", + f"Feeling inspired by a podcast I listened to about {fake.bs()} today. They mentioned {fake.company()} and how they’re leveraging it—so cool!", + f"If you’re not paying attention to {fake.bs()}, you’re missing out. I’ve been diving into how it’s reshaping industries, and it’s incredible.", + f"Spent my afternoon reading about {fake.bs()} and drinking coffee. It’s crazy how fast things are changing in this space!", + f"Is it just me, or does it seem like {fake.bs()} is becoming a bigger deal every day? Let’s talk about how this impacts our daily lives.", + f"Have you seen the latest about {fake.company()}? Their work in {fake.bs()} is super innovative! Makes me want to learn more.", + f"I’ve been dabbling in some research about {fake.bs()}, and I think I’m onto something exciting. Let’s connect if you’re interested!", + f"People keep saying {fake.bs()} is the key to the future. I wonder if we’re all ready for what’s coming next.", + f"Big shoutout to {fake.company()} for leading the way in {fake.bs()}. It’s companies like this that make me hopeful for what’s ahead.", + f"The intersection of {fake.bs()} and everyday life is more significant than we think. It’s something I’ve been reflecting on lately.", + f"Had an enlightening conversation with a friend about {fake.bs()} and how it’s changing the game for companies like {fake.company()}.", + f"Woke up with {fake.bs()} on my mind (yes, I’m that person now). The future is looking so dynamic and exciting!", + f"There’s something about {fake.bs()} that feels so revolutionary. Anyone else digging into how it affects {fake.currency_name()}?", + f"What role do you think {fake.company()} plays in the whole {fake.bs()} evolution? Let’s debate in the comments!" + ] + + users = list(User.objects.all()) + if not users: + self.stdout.write(self.style.ERROR('No users found in the database. Please create some users first.')) + return + + for _ in range(total): + title = random.choice(economy_topics) + content = random.choice(economy_contents) + author = random.choice(users) + + post = Post( + title=title, + content=content, + author=author, + created_at=fake.date_time_this_year(), + updated_at=fake.date_time_this_year(), + ) + post.save() + + self.stdout.write(self.style.SUCCESS(f'Successfully created {total} fake posts.')) diff --git a/backend/marketfeed/migrations/0010_alter_post_title.py b/backend/marketfeed/migrations/0010_alter_post_title.py new file mode 100644 index 00000000..4762f709 --- /dev/null +++ b/backend/marketfeed/migrations/0010_alter_post_title.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2 on 2024-12-16 15:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('marketfeed', '0009_post_stocks'), + ] + + operations = [ + migrations.AlterField( + model_name='post', + name='title', + field=models.CharField(max_length=100), + ), + ] diff --git a/backend/marketfeed/models.py b/backend/marketfeed/models.py index d82ef91a..c884030f 100644 --- a/backend/marketfeed/models.py +++ b/backend/marketfeed/models.py @@ -86,7 +86,7 @@ class Portfolio(models.Model): class Post(models.Model): - title = models.CharField(max_length=50) + title = models.CharField(max_length=100) content = models.TextField() author = models.ForeignKey(User, on_delete=models.CASCADE) created_at = models.DateTimeField(auto_now_add=True) diff --git a/backend/requirements.txt b/backend/requirements.txt index 6a50bc18..0e84f4e0 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -16,3 +16,5 @@ feedparser yfinance requests beautifulsoup4 +Faker==18.11.1 + From 78e246278dae8eb714536df1fa166eaf0d6fc50c Mon Sep 17 00:00:00 2001 From: oguzpancuk <44545164+oguzpancuk@users.noreply.github.com> Date: Mon, 16 Dec 2024 20:16:49 +0300 Subject: [PATCH 2/2] Command added to compose file generate_posts command is added to the docker-compose.yaml --- backend/docker-compose.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/docker-compose.yaml b/backend/docker-compose.yaml index 4cefe877..235db366 100644 --- a/backend/docker-compose.yaml +++ b/backend/docker-compose.yaml @@ -33,7 +33,8 @@ services: python3 manage.py migrate --noinput && python3 manage.py collectstatic --noinput && python3 manage.py update_currencies && - python3 manage.py update_stocks && + python3 manage.py update_stocks && + python3 manage.py generate_posts && gunicorn backend.wsgi:application --bind 0.0.0.0:8000' restart: always environment: