Amazing Reddit clone - A network of communities where people can dive into their interests, hobbies and passions.
-
A Social Network for Communities and Groups - Reddit is a network of communities based on people's interests. Find communities you're interested in, and become part of an online community!
-
The Reddit clone software project is an ambitious undertaking that seeks to replicate the popular online forum platform. The project aims to create a platform that is as user-friendly and feature-rich as Reddit, while also providing additional features and customization options. The project team developed the software, which will include a variety of tools for creating and managing subreddits, user profiles, and other features. Ultimately, the goal of the project is to create a powerful and versatile platform that can be used by anyone looking to create their own online community.
demo.mp4
- You can use your Google account or Facebook account
- Sign up
- Login in
- Forget password
- Forget username
signUp.mp4
- Profile overview (posts, comments, upvotes, downvotes, etc.)
- Your Posts
- Your Comment
- Your Upvotes
- Your Downvotes
- Your Saved Posts and Comments
- Your Hidden Posts and Comments
- Your History
- Your Followers
profile.mp4
- Create rich text post
- Create image and video post
- Create link post
- Add flair to post
- Add spoiler to post
- Add nsfw to post
- Upvote and downvote post
- Save post
- Hide post
- Report post
- Edit post
- Delete post
Rich.text.mp4
Images.and.videos.mp4
- Create rich text comment
- Nested comments
- Upvote and downvote comment
- Reply to comment
- Edit comment
- Report comment
Comment.mp4
- Safe search
- Search bar
- Search People
- Search communities
- Search page
- Overview
- Posts
- Comments
- People
- Search in communities
- Overview
- Posts
- Comments
- People
Search.mp4
- Notifications
- Push notifications
- All notifications
- Messages
- Send a private message
- All messages
- Unread messages
- Sent
- Post replies
- Usernames mentions
- Delete message
- Report message
- Reply to message
not.and.messages.mp4
-
Queues
- Spam queue (posts and comments)
- Edited queue (posts and comments)
- Unmoderated queue (posts and comments)
-
User management
- Banned users
- Muted user
- Approved user
- Moderators
-
Flairs and emojis
- Add new flair
-
Rules and regulations
- Add new rule
- Edit rule
- Delete rule
- Reorder rules
-
Community settings
- Edit community name
- Edit community description
- Edit community topic
- Edit community language
- Edit community type (Public, Private, Restricted)
- Edit community region
- Enable/disable community Spoiler tag
- Edit suggested sort for posts
- Enable/disable image and video in posts
-
Community traffic
- Day of week
- Month
- Page views
- Members joined
- Members left
moderator.mp4
Add.flair.mp4
-
Account
- Edit email address
- Edit Password
- Change country
- Connect to Google account
-
Profile
- Change display name
- Change profile picture
- Change about
- Enable/disable NSFW content
- Allow people to follow you
-
Safety and privacy
- Block people
-
Feed settings
- Enable/disable Adult content
- Enable/disable auto play media
-
Emails
- Enable/disable chat requests
- Enable/disable new followers
Settings.mp4
- Create subreddit (Public, restricted and private)
- Join/Leave subreddit
- Add a post to subreddit
- View subreddit categories
subreddit-and-categories.mp4
- Clone the repository
$ git clone https://github.com/CMP24-SWE-TEAM3/RedditX-Front-End.git
- Navigate to repository directory
$ cd RedditX-Front-End
- Install dependencies
$ npm install
Running on development mode
$ npm start
src
Source directory
App.js
-
API
Contains Axios instance
-
Assets
Contains Images, videos directories etc...
-
Images
Contains Images
-
Videos
Contains Videos
-
-
Contexts
Contains contexts files
-
Utils
Contains helper functions (Pure functions)
-
Hooks
Contains Custom hooks
-
Services
Contains any functions that deals with the API
-
Components
Contains Small components
-
Button
Button.jsx
Button.styled.js
Button.test.js
-
-
Layouts
Contains layouts that consists of components Bigger components
-
Form
Form.jsx
Form.styled.js
Form.test.js
-
-
Pages
Pages that consists of Layouts and may be some components
-
Home
Home.jsx
Home.styled.js
Home.test.js
-
-
Features
Contains features that is considered a small project ex. Authentication, Posts, Community etc...
-
Authentication
Contains Authentication features (pages, components, helpers ,contexts ,etc..
index.js
-
Assets
Contains Images, videos directories etc...
-
Images
Contains Images
-
Videos
Contains Videos
-
-
Contexts
Contains contexts files
-
Utils
Contains helper functions (Pure functions)
-
Hooks
Contains Custom hooks
-
Services
Contains any functions that deals with the API
-
Components
Contains Small components
-
Layouts
Contains layouts that consists of components Bigger components
-
Pages
Pages that consists of Layouts and may be some components
-
-
├───API
├───Assets
│ └───Images
├───Components
│ ├───AdvertiseButton
│ ├───BadgeButton
│ ├───BestButton
│ ├───CategoryButton
│ ├───CategoryTitle
│ ├───ChooseDate
│ ├───CommunityCard
│ ├───CommunityCardItem
│ ├───CommunityCardItemExplore
│ ├───CommunityPageItem
│ ├───CreatePostButton
│ ├───CustomMenu
│ ├───CustomToggle
│ ├───DotButton
│ ├───DropDownButtonLeft
│ ├───DropDownItem
│ ├───DropDownMenu
│ ├───DropDownRight
│ ├───EveryWhereButton
│ ├───GlobalButton
│ ├───HeadingContent
│ ├───HotButton
│ ├───ImageButton
│ ├───LinkButton
│ ├───LoginButton
│ ├───MainLinks
│ ├───ModalAfterCreateCommunity
│ ├───ModalCommunity
│ ├───ModeratorButton
│ ├───NewButton
│ ├───NotificationButton
│ ├───PopularButton
│ ├───Post
│ ├───PostsList
│ ├───ProfilePostButton
│ ├───ScrollButton
│ ├───SearchBar
│ ├───SearchDropDown
│ ├───SideBar
│ ├───SignUp
│ ├───SwitchButton
│ └───TopButton
├───Contexts
│ └───CategoryContext
├───Data
├───Features
│ ├───Authentication
│ │ ├───Assets
│ │ ├───Components
│ │ │ ├───Button
│ │ │ │ └───__snapshots__
│ │ │ ├───Checked
│ │ │ │ └───__snapshots__
│ │ │ ├───DragAndDropFile
│ │ │ │ └───__snapshots__
│ │ │ ├───FormInput
│ │ │ │ └───__snapshots__
│ │ │ ├───FormInputPageCom
│ │ │ │ └───__snapshots__
│ │ │ ├───GenderButton
│ │ │ │ └───__snapshots__
│ │ │ ├───InterestButton
│ │ │ │ └───__snapshots__
│ │ │ ├───LoadingSpinner
│ │ │ │ └───__snapshots__
│ │ │ ├───PasswordStrength
│ │ │ │ └───__snapshots__
│ │ │ ├───UploadedImage
│ │ │ │ └───__snapshots__
│ │ │ └───UploadedImagesContainer
│ │ │ └───__snapshots__
│ │ ├───Contexts
│ │ ├───Hooks
│ │ ├───Layouts
│ │ │ ├───AfterSignUp
│ │ │ │ └───__snapshots__
│ │ │ ├───AfterSignUpLoading
│ │ │ │ └───__snapshots__
│ │ │ ├───AfterSignUpModal
│ │ │ │ └───__snapshots__
│ │ │ ├───ForgetPassword
│ │ │ ├───ForgetPasswordModal
│ │ │ │ └───__snapshots__
│ │ │ ├───ForgetUserName
│ │ │ ├───ForgetUserNameModal
│ │ │ │ └───__snapshots__
│ │ │ ├───Gender
│ │ │ │ └───__snapshots__
│ │ │ ├───Interests
│ │ │ │ └───__snapshots__
│ │ │ ├───LogIn
│ │ │ │ └───__snapshots__
│ │ │ ├───LogInPageCom
│ │ │ ├───LogInScreen
│ │ │ ├───LogInVerticalModal
│ │ │ │ └───__snapshots__
│ │ │ ├───NewPasswordPageCom
│ │ │ │ └───__snapshots__
│ │ │ ├───SignUp
│ │ │ │ └───__snapshots__
│ │ │ ├───SignUpFirstScreen
│ │ │ │ └───__snapshots__
│ │ │ ├───SignUpPageFirstScreen
│ │ │ │ └───__snapshots__
│ │ │ ├───SignUpPageSecondScreen
│ │ │ │ └───__snapshots__
│ │ │ ├───SignUpSecondScreen
│ │ │ │ └───__snapshots__
│ │ │ ├───SignUpVerticalModal
│ │ │ │ └───__snapshots__
│ │ │ └───UploadPhoto
│ │ ├───Pages
│ │ │ ├───ForgetPasswordPage
│ │ │ │ └───__snapshots__
│ │ │ ├───ForgetUserNamePage
│ │ │ │ └───__snapshots__
│ │ │ ├───LogInPage
│ │ │ │ └───__snapshots__
│ │ │ ├───NewPasswordPage
│ │ │ │ └───__snapshots__
│ │ │ └───SignUpPage
│ │ │ └───__snapshots__
│ │ ├───Services
│ │ └───Utils
│ ├───Messages
│ │ ├───Assets
│ │ ├───Components
│ │ │ ├───Header
│ │ │ │ └───__test__
│ │ │ ├───MessagesItems
│ │ │ │ └───__test__
│ │ │ ├───MessagesPanel
│ │ │ │ └───__test__
│ │ │ ├───PostReply
│ │ │ │ └───__test__
│ │ │ ├───ReportModal
│ │ │ │ └───__test__
│ │ │ ├───SendMessage
│ │ │ │ └───__test__
│ │ │ ├───SentMessageItem
│ │ │ │ └───__test__
│ │ │ └───UsernameMentions
│ │ │ └───__test__
│ │ ├───Contexts
│ │ ├───Hooks
│ │ ├───Layouts
│ │ │ ├───AllMessages
│ │ │ ├───Mentions
│ │ │ ├───Panel
│ │ │ ├───Posts
│ │ │ ├───SentMessages
│ │ │ └───Unread
│ │ ├───Pages
│ │ ├───Services
│ │ │ └───__test__
│ │ └───Utils
│ ├───Moderator
│ │ ├───Assets
│ │ │ └───Images
│ │ ├───Components
│ │ │ ├───AllModerators
│ │ │ ├───ApprovedUsers
│ │ │ ├───AsideGraph
│ │ │ ├───BannedUsers
│ │ │ ├───BuutonsBar
│ │ │ ├───CancelModal
│ │ │ ├───DayOfWeek
│ │ │ ├───DeleteModal
│ │ │ ├───DroppableRule
│ │ │ ├───EditModerators
│ │ │ ├───Flair
│ │ │ ├───FlairInfo
│ │ │ ├───FlairListHeader
│ │ │ ├───HeaderGraph
│ │ │ ├───InvitedModerators
│ │ │ │ └───__snapshots__
│ │ │ ├───LineChart
│ │ │ ├───MainInfo
│ │ │ ├───ModeratorRow
│ │ │ ├───MonthState
│ │ │ ├───MutedUsers
│ │ │ ├───NavbarRule
│ │ │ ├───NewFlair
│ │ │ ├───PageNumber
│ │ │ ├───QueueHeader
│ │ │ ├───QueueHeaderPopup
│ │ │ ├───QueuesControls
│ │ │ ├───ReorderItem
│ │ │ ├───ReorderRules
│ │ │ ├───Results
│ │ │ ├───RuleHeader
│ │ │ ├───RuleModal
│ │ │ └───RuleTab
│ │ ├───Contexts
│ │ ├───Hooks
│ │ ├───Layouts
│ │ │ ├───ApprovedPage
│ │ │ ├───ApproveUser
│ │ │ ├───ApproveUserModal
│ │ │ ├───BannedPage
│ │ │ ├───BanUser
│ │ │ ├───BanUserModal
│ │ │ ├───CommunitySettingsPage
│ │ │ ├───EditBanUser
│ │ │ ├───EditBanUserModal
│ │ │ ├───EditedQueue
│ │ │ ├───FlairList
│ │ │ ├───Graph
│ │ │ ├───InviteModerators
│ │ │ ├───InviteModeratorsModal
│ │ │ ├───LayoutHeader
│ │ │ ├───LayoutTabs
│ │ │ ├───ModeratorsPage
│ │ │ ├───MutedPage
│ │ │ ├───MuteUser
│ │ │ ├───MuteUserModal
│ │ │ ├───PostsAndCommentsPage
│ │ │ ├───SpamQueue
│ │ │ ├───Tables
│ │ │ └───UnmoderatedQueue
│ │ ├───Pages
│ │ │ ├───FlairPage
│ │ │ ├───Moderator
│ │ │ ├───Rules
│ │ │ ├───TestModeratorsModals
│ │ │ └───TrafficStates
│ │ ├───Services
│ │ │ └───__test__
│ │ └───Utils
│ ├───Notifications
│ │ ├───Assets
│ │ │ └───images
│ │ ├───Components
│ │ │ ├───NotificationContent
│ │ │ │ └───__test__
│ │ │ ├───NotificationItem
│ │ │ │ └───__test__
│ │ │ └───NotificationsUpperSide
│ │ ├───Contexts
│ │ ├───Hooks
│ │ ├───Pages
│ │ │ └───Notifications
│ │ ├───Services
│ │ │ └───__test__
│ │ └───Utils
│ ├───Post
│ │ ├───Assets
│ │ │ └───Images
│ │ ├───Components
│ │ │ ├───BlockStyleControls
│ │ │ ├───ChooseCommunity
│ │ │ ├───CollapsePostFooter
│ │ │ ├───Comment
│ │ │ ├───CommentDarftEditor
│ │ │ ├───CommunityCard
│ │ │ ├───CommunityCardItem
│ │ │ ├───CommunityCardPost
│ │ │ ├───CommunityDate
│ │ │ ├───CommunityOptions
│ │ │ ├───DraftEditor
│ │ │ ├───DraftEditorForm
│ │ │ ├───DraftLinkForm
│ │ │ ├───DragDropFile
│ │ │ │ └───__snapshots__
│ │ │ ├───FlairModal
│ │ │ ├───ImageAndVideoForm
│ │ │ ├───InlineStyleControls
│ │ │ ├───LinkControls
│ │ │ ├───LinkForm
│ │ │ ├───Media
│ │ │ ├───MediaControls
│ │ │ ├───ModeratorWidget
│ │ │ │ └───__snapshots__
│ │ │ ├───NavigationPost
│ │ │ ├───OnlineMembers
│ │ │ ├───PostContent
│ │ │ ├───PostFlagsWrapper
│ │ │ ├───PostFooter
│ │ │ ├───PostFormFooter
│ │ │ ├───PostGuidelines
│ │ │ ├───PostPublisher
│ │ │ ├───PreviewImage
│ │ │ ├───RelatedCommunities
│ │ │ ├───RichTextPostBody
│ │ │ ├───RulesWidget
│ │ │ ├───ScrollButton
│ │ │ ├───SpamPostFooter
│ │ │ ├───StyleControlButton
│ │ │ ├───TopCommunities
│ │ │ │ └───__snapshots__
│ │ │ ├───UploadedImage
│ │ │ ├───UploadedImagesContainer
│ │ │ ├───UploadedMedia
│ │ │ ├───UserFlairPreview
│ │ │ ├───UserSideBar
│ │ │ ├───UserSideCard
│ │ │ ├───VotingBar
│ │ │ │ └───__snapshots__
│ │ │ └───WidgetContainer
│ │ ├───Contexts
│ │ ├───Hooks
│ │ ├───Layouts
│ │ │ ├───CollapsePost
│ │ │ ├───CollapsePostContent
│ │ │ ├───DraftEditorTab
│ │ │ ├───ImagesAndVideosTab
│ │ │ ├───LinkTab
│ │ │ ├───Main
│ │ │ ├───PostShape
│ │ │ ├───Sidebar
│ │ │ ├───SpamPost
│ │ │ └───Tabs
│ │ ├───Pages
│ │ │ ├───CreatePost
│ │ │ ├───Post
│ │ │ ├───PostPreview
│ │ │ └───PreviewPostComment
│ │ ├───Services
│ │ │ └───__test__
│ │ └───Utils
│ │ └───__tests__
│ ├───Search
│ │ ├───Assets
│ │ ├───Components
│ │ │ ├───Comment
│ │ │ ├───CommentBody
│ │ │ ├───CommunityCard
│ │ │ ├───CommunityCardItem
│ │ │ ├───CommunityItem
│ │ │ ├───CreateCommunity
│ │ │ │ └───__snapshots__
│ │ │ ├───MainHeader
│ │ │ │ └───__snapshots__
│ │ │ ├───NotFound
│ │ │ ├───People
│ │ │ ├───PeopleCardItem
│ │ │ ├───PeopleItem
│ │ │ ├───Post
│ │ │ ├───PostFooter
│ │ │ ├───PostHeader
│ │ │ ├───Posts
│ │ │ ├───ResponsiveNavbar
│ │ │ │ └───__snapshots__
│ │ │ ├───SafeSearch
│ │ │ │ └───__snapshots__
│ │ │ └───SetCommunityCard
│ │ ├───Contexts
│ │ │ ├───SafeSearchContext
│ │ │ └───SearchWordContext
│ │ ├───Hooks
│ │ ├───Layouts
│ │ │ ├───CommentsPage
│ │ │ ├───CommunitiesPage
│ │ │ ├───PeoplePage
│ │ │ └───PostsPage
│ │ ├───Pages
│ │ │ └───Search
│ │ ├───Services
│ │ │ └───__test__
│ │ └───Utils
│ ├───settings
│ │ ├───Assets
│ │ ├───Components
│ │ │ ├───AboutUser
│ │ │ ├───BlockPeople
│ │ │ ├───CompContainer
│ │ │ ├───CountrySetting
│ │ │ ├───DeleteAccount
│ │ │ ├───DisplayName
│ │ │ ├───FollowProfile
│ │ │ ├───PasswordChange
│ │ │ ├───PasswordModal
│ │ │ ├───ProfileImage
│ │ │ ├───ProfileInformation
│ │ │ ├───ProfileNsfw
│ │ │ ├───SettingChange
│ │ │ ├───SettingModal
│ │ │ └───SettingsComponent
│ │ ├───Contexts
│ │ ├───Hooks
│ │ ├───Layouts
│ │ │ ├───AccountPage
│ │ │ ├───EmailsPage
│ │ │ ├───FeedPage
│ │ │ ├───PrivacyPage
│ │ │ └───ProfilePage
│ │ ├───Pages
│ │ │ └───SettingsPage
│ │ ├───Services
│ │ │ └───__test__
│ │ └───Utils
│ ├───Subreddit
│ │ ├───Assets
│ │ │ └───images
│ │ ├───Components
│ │ │ ├───AboutCommunity
│ │ │ ├───BodyContent
│ │ │ ├───Button
│ │ │ ├───Categories
│ │ │ │ └───__test__
│ │ │ ├───CategoryBar
│ │ │ ├───CategoryDropDown
│ │ │ │ └───__snapshots__
│ │ │ ├───Community
│ │ │ │ └───__test__
│ │ │ ├───CommunityCard
│ │ │ ├───CommunityDate
│ │ │ ├───CommunityOptions
│ │ │ ├───CommunitySideCardItem
│ │ │ │ └───__test__
│ │ │ ├───CommunityTopics
│ │ │ ├───FlairWidget
│ │ │ ├───Header
│ │ │ │ └───__test__
│ │ │ ├───ImageButton
│ │ │ ├───Index Body
│ │ │ │ └───__test__
│ │ │ │ └───__snapshots__
│ │ │ ├───Index Header
│ │ │ │ └───__test__
│ │ │ ├───LinkButton
│ │ │ ├───ModeratorWidget
│ │ │ ├───NoSubReddit
│ │ │ ├───OnlineMembers
│ │ │ ├───Post
│ │ │ │ └───__snapshots__
│ │ │ ├───PrivatePage
│ │ │ ├───ProfilePostButton
│ │ │ │ └───__snapshots__
│ │ │ ├───RequestMods
│ │ │ ├───RulesWidget
│ │ │ ├───SaveChangesModal
│ │ │ ├───SelectYourFlair
│ │ │ │ └───__snapshots__
│ │ │ ├───SetSubReddit
│ │ │ ├───SubRedditBody
│ │ │ ├───SubRedditHeader
│ │ │ ├───SubRedditNoPosts
│ │ │ ├───SubRedditPosts
│ │ │ ├───SubRedditSideBar
│ │ │ ├───UserFlairPreview
│ │ │ └───WidgetContainer
│ │ ├───Contexts
│ │ ├───Hooks
│ │ ├───Layouts
│ │ │ ├───Communities Container
│ │ │ ├───CommunitySideCard
│ │ │ ├───CreatePost
│ │ │ │ └───__snapshots__
│ │ │ └───Right Section
│ │ ├───Pages
│ │ │ ├───CommunityLeaderBoard
│ │ │ ├───IndexPage
│ │ │ └───SubReddit
│ │ ├───Services
│ │ │ └───__test__
│ │ └───Utils
│ └───User
│ ├───Assets
│ │ └───images
│ ├───Components
│ │ ├───AdultPage
│ │ ├───BlockModal
│ │ ├───CategoryBar
│ │ ├───Follower
│ │ ├───ModeratorOf
│ │ ├───SetUser
│ │ ├───UserComment
│ │ ├───UserNav
│ │ ├───UserNoPosts
│ │ ├───UserNotFound
│ │ ├───UserSideBar
│ │ └───UserSideCard
│ ├───Contexts
│ ├───Hooks
│ ├───Layouts
│ │ ├───Followers
│ │ ├───Overview
│ │ ├───UserComments
│ │ ├───UserDownVoted
│ │ ├───UserHidden
│ │ ├───UserHistory
│ │ ├───UserPosts
│ │ ├───UserSaved
│ │ └───UserUpVoted
│ ├───Pages
│ │ └───User
│ ├───Services
│ │ └───__test__
│ └───Utils
├───Hooks
├───Layouts
│ ├───Communities
│ ├───CommunityCard
│ ├───CreatePost
│ ├───CreatePostSideBar
│ ├───Footer
│ ├───Navbar
│ ├───Navigation
│ ├───PopularPosts
│ ├───Posts
│ ├───RecentPosts
│ └───ShowPosts
├───Pages
│ ├───DummyPage
│ ├───ErrorBoundary
│ ├───ErrorPage
│ ├───Explore
│ ├───HomePage
│ └───NotFound
├───PushNotification
├───Services
├───Theme
└───Utils
Abdelrahman Hamza |
Ziad Sherif |
khaled farahat |
Mohamed Ibrahim |
Mohamed Walid |
Abdelrahman Ashraf |
Waleed Hesham |
This software is licensed under MIT License, See License .