This application is a textboard-style platform currently under active development. It leverages the following technologies:
- Authentication: Clerk
- Language: TypeScript
- Database: MongoDB
- Styling: TailwindCSS
- Schema Validation: Zod
- Framework: Next.js 14 with App Directory and Server Components
Despite its name, the application functions more like a traditional textboard.
- User authentication with Clerk
- Making posts with text. Replying to posts.
- Mobile friendly user interface that works well on both desktop and mobile devices.
- Viewing posts and comments
- Basic mod tooling like banning users and deleting posts
- Reporting posts. Reports can be moderated by the moderator.
- Refine typing: Improve type safety by eliminating the use of
any
throughout the application. - Write Tests: Develop comprehensive tests to ensure the robustness and reliability of the application.
- Node.js 18.x
- MongoDB
- Clerk
- Clone the repository:
git clone https://github.com/Okkurat/r-ddit.git
- Navigate to the project directory:
cd r-ddit
- Install dependencies:
npm install
- Create a
.env
file in the root directory and add the following environment variables:
MONGODB_URI=mongodb+srv://<username>:<password>@<cluster-url>/<database-name>?retryWrites=true&w=majority
CLERK_SECRET=<clerk-secret>
CLERK_API_KEY=<clerk-api-key>
- Start the application:
npm run dev
The application has a possible cron job that can be used to remove expired bans from the database. The route for this job is /api/bans
.