Check out the live demo of the project 5-Chan
Check out a video of the project YouTube Video
A platform where users can share and receive the nicest and the meanest thing about them in a safe and harmless manner. Non-logged-in users can write about others, while logged-in users can write after a verification process using OTP (One-Time Password) during signup.
- Non-Logged-In Users: Can provide feedback for other users.
- Logged-In Users: Can receive feedback after completing OTP verification during signup.
- OTP Verification: Ensures that only verified users can receive feedback.
- Username Management: If a logged-in user is not verified, their username can be taken away.
- Server-Side Rendering: Leveraged Next.js best practices for server-side rendering, optimizing performance and SEO by serving static files and enhancing crawler indexing.
- Best Coding Practices: The project follows a well-structured codebase with clear separation between models and schemas, ensuring organization and eliminating clutter.
- Search Engine Optimization (SEO): Enhanced SEO by customizing metadata, including page titles and descriptions, to improve search engine visibility and ranking.
- Prettier Integration: Prettier has been integrated to enforce consistent code formatting, ensuring readability and uniformity throughout the project.
- Linting: A robust linting configuration was implemented to maintain code quality, catch errors early, and enforce best practices across the project.
- Clean Code: All redundant and unnecessary code has been removed, ensuring a clean, efficient, and straightforward codebase.
- Sample Files: A sample file (TemporaryPrepPages) was created to provide a practice resource and facilitate learning.
The platform is built using the following technologies:
- Frontend:
- Next.js
- React
- Tailwind CSS
- Embla Carousel (for showcasing feedback)
- Backend:
- Node.js
- npm (package installer)
- NodeMailer (for OTP-based email verification)
- Gemini API (for integration with LLM)
- ZOD (as a Schema Validation Library)
- Testing:
- Postman (for API testing)
Before you begin, make sure you have the following installed:
-
Clone the repository to your local machine:
git clone https://github.com/your-username/5-chan.git
-
Navigate to the project directory:
cd 5-chan
-
Install the required dependencies:
npm install
-
Set up environment variables:
- Create a
.env
file in the root directory and configure the following environment variables:NEXT_PUBLIC_API_URL
- API endpoint URLNEXT_PUBLIC_GEMINI_API_KEY
- Gemini API key for LLM integrationNODEMAILER_USER
- Your NodeMailer email accountNODEMAILER_PASS
- Password for NodeMailer account
- Create a
-
Start the development server:
npm run dev
This will start the app on
http://localhost:3000
. -
Open the app in your browser and test the functionality.
-
Feedback Mechanism:
- Users can provide feedback on other users' profiles, even if they are not logged in.
- Logged-in users can view feedback only after confirming their identity via OTP.
-
OTP Verification Process:
- Upon signup, users will receive an OTP email.
- If the user fails to verify their email, their username will be temporarily removed until verified.
-
LLM Integration:
- The Gemini API integrates a Language Learning Model to provide an interactive and personalized feedback experience.
We welcome contributions! If you want to contribute to this project, please fork the repository and create a pull request with a detailed description of the changes. Make sure to follow the project's coding standards.
Thanks for checking out 5-Chan. We hope you enjoy using it!