This is a Blogging Website, Created Using NextJS, MongoDB, Next-Auth & Modular CSS.
- Add Environment variables:
MONGODB_URI="<URI for MongoDB Access>"
NEXTAUTH_SECRET="<Randomly Generated SECRETE Key required by Next Auth>"
- Create a Build
$ npm run build
-- or --
$ yarn build
- Start Server
$ npm run start
-- or --
$ yarn start
- Home: Listing of All Blogs
- Contact Us: A Contact Us Form
- Register: User Registration Form
- Login: User Login Form
- Dashboard: User Profile
- Post/[slug]: Post Details
- /api/user: GET access to Registered Users Profile Details
- /api/contact: POST Contact Form data, which is stored in MongoDB
- /api/auth/register: POST Registration API, User Data is stored in MongoDB.
- /api/auth/[...nextauth]: Dynamic API Route used by next-auth for Login, SignOut & for maintaining the USer Session
The backend is using following Technologies;
- Node: For API & Accessing Blog MD
- Next JS: For SSR & APIs
- MongoDB: Storing User & Contact Form Data
- BCrypt: For Hashing the password before storing & for securely comparing passwords while login
- Next-Auth: For Handling User Auth. I've configured it to use JWT.
The Blog Data is stored as Markdowns & Rendered on Front-End
The Front-End is using following technologies:
- Next JS: For SSR, SSG
- React: Used underneath NextJS for creating UI in form of Components
- Axios: For Sending Requests using API
- Next-Auth: For Accessing Session, verifying Authentication Status.
- React-Markdown: For Rendering the Blog Markdowns using Custom Styling
- React-Icons: For SVG Icons used on the Site