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
RedditService
andNotificationService
every 1-5 seconds. - Logs the status in a
HealthCheck
table.
- 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:5173
in 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.