An Application where users can login/signin and write anything as a note, and access it later. It is made it in a way where anyone can access their notes without using browser client, and can also send request via postman, hopescotch or any other client.
- User authentication (Login/Signup).
- Create, read, update, and delete (CRUD) notes.
- Accessible via browser and API clients.
- Real-time form validation using
react-hook-form
andzod
. - Rate-limiting for API endpoints using
rate-limiter-flexible
. - Responsive design powered by
tailwindcss
.
- Frontend: React, Next.js, Tailwind CSS, Framer Motion
- Backend: Next.js API Routes, Prisma ORM
- Database: Supports relational databases (e.g., PostgreSQL)
- Authentication: NextAuth.js
- Validation: Zod, @hookform/resolvers
- Email Service: Nodemailer, Resend
- Other Utilities:
- Axios for API requests
- React Hot Toast for notifications
- Recoil for state management
-
Clone the repository:
git clone https://github.com/your-username/next-notes.git cd next-notes
-
Install dependencies:
npm install
-
Create a
.env
file in the root directory and configure the following environment variables: --env.example file -
Apply database migrations:
npx prisma migrate dev
-
Start the development server:
npm run dev
-
Access the application at
http://localhost:3000
.
npm run dev
: Start the development server.npm run build
: Build the application for production.npm run start
: Start the production server.npm run lint
: Run ESLint to check for linting errors.
- TypeScript: Statically typed JavaScript.
- ESLint: Linting tool for code quality.
- Prettier: Code formatter.
- Prisma CLI: Database migrations and management.
Contributions are welcome! Please follow these steps:
- Fork the repository.
- Create a new branch:
git checkout -b feature-name
. - Make your changes and commit them:
git commit -m 'Add some feature'
. - Push to the branch:
git push origin feature-name
. - Open a pull request.
This project is licensed under the MIT License. See the LICENSE file for details.
Feel free to open issues or submit pull requests if you encounter any bugs or have feature requests!