An anonymous messaging platform built with NextJs, NodeJs, ExpressJS, MongoDB and AWS S3 for storing images with the server hosted on Render while the client is hosted on Vercel
The project is composed of two folders, candidly_backend (server) and candidly_frontend (client)
This is a multiple page Next.Js 13.5 app written with tailwind CSS that allows individuals to receive anonymous messages from wherever they share their links like whatsapp status, twitter e.t.c, it stores the multimedia files such as images in AWS S3 and stores the data in a MongoDB database including reference to the images stored in the S3 bucket.
- Create a .env file directly inside the
candidly_frontend/my-app
folder - You need to understand how NEXT AUTH works.
- The needed variables inside the .env file are as follows:
PRODUCTION_ENDPOINT
(This is the endpoint to your backend either hosted on a platform like render, heroku or locally (for development))NEXTAUTH_URL
(This is the url to your client (frontend) either hosted on a platform like vercel, netlify or locally (for development))NEXTAUTH_SECRET
(This can be any string of your choosing)
- Be in
candidly_frontend/my-app
folder npm install
To install dependenciesnpm run dev
To start your development server
This is a nodejs express web server that listens for calls which could originate from various parts of the application such as creating a new user, updating an existing user details, sending a new message, logging in e.t.c
- You need to have an account on AWS S3.
- You need to understand how JWT works.
- You need to have mongodb set up on your machine and understand how it works.
- Create a .env file directly inside
candidly_backend
folder - The needed variables inside the .env file are as follows:
AWS_ACCESS_KEY_ID
AWS_BUCKET_NAME
AWS_REGION
AWS_SECRET_ACCESS_KEY
JWT_SECRET
MONGODB_URI
PRODUCTION_URL
(url to your frontend)EMAIL
(any email address)MAIL_PASSWORD
(some email providers like gmail require you to generate an "app specific password")
- Make sure you are in the root folder
Candidly_app/
- Run
npm start
Happy coding!