Skip to content

A simple Reddit clone built using Django, following the MVC pattern. This application allows users to post content, comment, vote, and interact with different subreddits. Partial Requirement for CSIT327 - Information Management 2

Notifications You must be signed in to change notification settings

Kuugang/redditclone-django

Repository files navigation

Reddit Clone

Contributors Forks Stargazers Issues MIT License

Overview

A Reddit-like web application built with Django, offering users the ability to create posts, comments, and interact within different subreddits.

  • Post System

  • Comment System

  • Voting System

  • User Profile System

  • Community Creation and Management

  • Community Member Hierarchy and Permissions

  • Community Event Creation and Management

Gantt Chart

🔗 ERD

ERD

🎨 UI/UX

1 2 3 4

🛠 Tech Stack

Django PostgreSQL HTML Javascript Tailwind

📦 Prerequisites

Python pip Django PostgreSQL

🚀 Installation

  1. Clone the repository
git clone https://github.com/Kuugang/redditclone-django.git
cd redditclone-django
  1. Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows, use `venv\Scripts\activate`
  1. Install dependencies
pip install -r requirements.txt
  1. Create .env file
touch .env
  1. Configure environment variables in .env
DATABASE_HOST = 'YOUR DATABASE HOST'
DATABASE_NAME = 'YOUR DATABASE NAME'
DATABASE_PORT = 'YOUR DATABASE PORT'
DATABASE_USER = 'YOUR DATABASE USER'
DATABASE_PASSWORD = 'YOUR DATABASE PASSWORD'
GOOGLE_OAUTH_CLIENT_ID= 'YOUR GOOGLE WEB APP OAUTH CLIENT ID'
EMAIL_HOST_USER = 'YOUR EMAIL HOST USER'
EMAIL_HOST_PASSWORD = 'YOUR EMAIL HOST PASSWORD'
  1. Run migrations and seeding
python manage.py migrate
python manage.py populate_topics
  1. Collect static files
python manage.py collectstatic
  1. Start the development server
python manage.py runserver

🔒 Security Note

  • Never commit .env file to version control
  • Use a .gitignore file to exclude sensitive credentials
  • Rotate credentials periodically

🤝 Contributing

  1. Fork the repository

  2. Create your feature branch (git checkout -b feature/AmazingFeature)

  3. Commit your changes (git commit -m 'Add some AmazingFeature')

  4. Push to the branch (git push origin feature/AmazingFeature)

  5. Open a Pull Request

🎉 Acknowledgements

  • Django

  • Tailwind CSS

  • Flowbite

About

A simple Reddit clone built using Django, following the MVC pattern. This application allows users to post content, comment, vote, and interact with different subreddits. Partial Requirement for CSIT327 - Information Management 2

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •