This project is a Reddit clone that allows users to create, comment, and interact with forum topics. It includes separate services for sending notifications and checking service availability.
- User registration
- User login
- User profile modification
- Create new posts
- Comment on posts
- Search and sort posts by title
- Delete posts or comments
- Upvote and downvote posts
Users register by providing:
- First Name
- Last Name
- Address
- City
- Country
- Phone Number
- Password
- Profile Picture
- Sends emails to subscribed users when a new comment is posted.
- Uses separate Worker Role service called
NotificationService(3 instances). - Utilizes services like Postmark or SendGrid for email delivery.
- Separate Worker Role service called
HealthMonitoringService(2 instances). - Monitors
RedditServiceandNotificationServiceevery 1-5 seconds. - Logs the status in a
HealthChecktable.
- Web Role application for visual representation of service availability.
- Displays uptime percentage for the last 24 hours.
-
Clone the repository:
git clone https://github.com/owlCoder/le_reddit.git cd le_reddit -
Install dependencies:
npm install
-
Set up environment variables:
cp .env.example .env # Edit .env with your configuration -
Run the application:
npm start
- Navigate to
http://localhost:5173in your browser. - Register a new user or log in with an existing account.
- Create, view, and interact with posts and comments.
POST /register- Register a new userPOST /login- Log in a userPUT /user/:id- Update user profile
POST /posts- Create a new postGET /posts- Get all postsGET /posts/:id- Get a specific postPUT /posts/:id- Update a postDELETE /posts/:id- Delete a post
POST /posts/:postId/comments- Add a comment to a postDELETE /comments/:id- Delete a comment
- Fork the repository
- Create a new branch (
git checkout -b feature-branch) - Commit your changes (
git commit -am 'Add new feature') - Push to the branch (
git push origin feature-branch) - Create a new Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
Danijel Jovanović - jovanovic.pr55.2020@uns.ac.rs
Project Link: https://github.com/owlCoder/le_reddit
Feel free to customize the links, images, and additional details to match your specific project needs.