Create a website similar to Reddit.

Job ID: 36763682

Budget: $250 – $750 USD

**Job Title**: Back-End Developer for a Social Link Sharing Website

**Job Description**:

I am in need of an experienced Back-End Developer who can take the completed front-end code and create a robust, secure, and scalable back-end. The ideal candidate will have a strong understanding of RESTful APIs, Node.js, Express.js, MongoDB (or similar NoSQL databases), and server-side rendering technologies such as Next.js or Nest.js.

Here is an outline of the project:

The website is a social platform allowing users to share interesting links, much like Reddit.

**Required Skills:**

1. Node.js
2. Express.js
3. MongoDB
4. Next.js or Nest.js
5. Familiarity with Frontend technologies such as HTML, CSS, and JavaScript
6. Working with APIs, specifically RESTful APIs
7. Understanding of server-side rendering and its benefits

**Main features of the website include:**

**1. Sign Up / Login:**
The front-end forms for Sign Up and Login need to be integrated with the back-end server. When a user submits the form, a POST request will be sent to https://wwwww.com/api/signup and https://wwwww.com/api/login. I need you to create secure, efficient, and scalable endpoints for user authentication.

**2. User Profiles:**
Each user has a profile page that includes details like the username, the date they joined, their voting power, and how many people they have invited. The profile page also includes a user's history (links they've posted and comments they've made), sorted by different criteria. The back-end will need to serve this information efficiently and securely.

**3. Messages and Reports:**
Users have the ability to send messages to each other and report inappropriate behavior. The back-end needs to securely store these messages and reports, and serve them when required.

**4. Invitations:**
Users can invite others to join the platform. The back-end will need to manage these invitations and update the user profiles accordingly.

**5. Profile Edit:**
Users can change their password, update their email, and invite a user. The back-end needs to handle these changes securely.


**Server Setup**
You must have and will be responsible to setting up the server and getting the website online.

Front-end code will be provided for most of the project. I expect the back-end developer to be able to understand the provided code and create a matching back-end that integrates seamlessly with the front-end.

In your bid, you must state that you have read the entire description and that you fully understand what I am looking for. You need to also be able to integrate with either Stripe or Paypal, and have experience with these types of services.

CODE
Code MUST have descriptive comments! No exceptions!
Github - Must have git experience and a github account
Milestone code review - Before each milestone, code must be uploaded for review before release of milestones.