π Live Demo | π» GitHub Repo
Build a full stack platform that helps users:
- Generate content using an AI chatbot.
- Schedule posts via a calendar interface.
- Automatically publish posts to social media (currently Twitter & LinkedIn, text-only).
This platform makes it easier for businesses or individuals to plan, create, and post content consistently.
- Securely connect Twitter & LinkedIn accounts using OAuth.
- Automate posting text content.
- Instagram integration is planned (API limitations, posting images/videos not implemented yet).
- Chatbot collects business info from the user.
- Generates personalized text posts dynamically for scheduling.
- Supports both dynamic (interactive) and static (simple) post types.
- Calendar view to display all scheduled posts.
- Posts can be scheduled for the future or posted immediately.
- Users can edit or delete posts before publishing.
- Scheduled posts are automatically sent to Twitter & LinkedIn.
- Immediate posts are created in DB first, then published.
- Post status updated as
pending β posted β failed.
- Backend: Node.js + Express, MongoDB (Mongoose)
- Frontend: Next.js + React + Tailwind CSS
- Scheduling:
node-cron(runs every minute to check posts) - AI Content: Local chatbot simulation (OpenAI can be integrated)
- Hosting: Vercel (frontend), MongoDB Atlas (database)
frontend/
βββ src/
β βββ app/
β β βββ dashboard/
β β β βββ [...catchAll]/
β β β βββ page.tsx
β β βββ auth/
β β β βββ page.tsx
β β βββ favicon.ico
β β βββ globals.css
β β βββ layout.tsx
β β βββ page.tsx
β β
β βββ components/
β β βββ auth/page.tsx
β β βββ dashboard/
β β β βββ AllPostList.tsx
β β β βββ Chatbot.tsx
β β β βββ CreatePostForm.tsx
β β β βββ DashboardNotFound.tsx
β β β βββ FloatingChatbot.tsx
β β β βββ PostSchedulerDashboard.tsx
β β β βββ SocialAccount.tsx
β β β βββ AuthGuard.tsx
β β β βββ PostStatusNav.tsx
β β
β βββ context/
β β βββ AuthContext.tsx
β β βββ PostContext.tsx
β β βββ ToastContext.tsx
β β
β βββ hooks/
β β βββ useAuth.ts
β β βββ useChat.ts
β β βββ usePosts.ts
β β βββ useSocialAccount.ts
β β
β βββ lib/
β β βββ api.ts
β β βββ auth.ts
β β βββ chat.ts
β β βββ posts.ts
β β βββ social.ts
backend/
βββ src/
β βββ controllers/
β β βββ authController.ts
β β βββ postController.ts
β β
β βββ models/
β β βββ User.ts
β β βββ Post.ts
β β
β βββ routes/
β β βββ authRoutes.ts
β β βββ postRoutes.ts
β β
β βββ middleware/
β β βββ authMiddleware.ts
β β
β βββ utils/
β β βββ platformTwitter.ts
β β βββ platformLinkedIn.ts
β β
β βββ config/
β β βββ db.ts
β β
β βββ server.ts
β βββ types.d.ts
Create a .env.local (frontend) and .env (backend):
# Frontend
NEXT_PUBLIC_API_URL=http://localhost:4000/api
# Backend
MONGO_URI=<your_mongodb_connection_string>
JWT_SECRET=<your_jwt_secret>
SESSION_SECRET=mysecretkey
BACKEND_URL=http://localhost:4000
FRONTEND_URL=http://localhost:3000
# Twitter OAuth
TWITTER_API_KEY=<key>
TWITTER_API_SECRET=<secret>
TWITTER_ACCESS_TOKEN=<token>
TWITTER_ACCESS_SECRET=<secret>
TWITTER_CALLBACK_URL=<callback_uri>
# LinkedIn OAuth
LINKEDIN_CLIENT_ID=<client_id>
LINKEDIN_CLIENT_SECRET=<client_secret>
LINKEDIN_REDIRECT_URI=<redirect_uri>
LINKEDIN_CALLBACK_URL=<callback_uri>π Instagram env vars not required (not integrated yet).
Good point π β every professional README should include a Git Clone & Setup section at the top so anyone can run it locally.
Hereβs how you can add it to your README (just before Setup & Running Locally):
## π₯ Clone the Repository
First, clone the repo and navigate into it:
```bash
git clone https://github.com/tsujit74/Nexa
```cd backend
npm install
npm startcd frontend
npm install
npm run dev- Backend:
http://localhost:4000 - Frontend:
http://localhost:3000
-
Signup/Login β create a new account.
-
Connect Accounts β link Twitter & LinkedIn via OAuth.
-
Chatbot β enter details β generate suggested post text.
-
Create Post β choose platform & schedule date/time.
-
Dashboard β view/edit posts on calendar.
-
Posting:
- Immediate β posts instantly.
- Scheduled β posted automatically at correct time by
node-cron.
- Posts are text-only for now.
- Instagram support pending (API restrictions).
- Scheduler runs every minute (optimized for demo; can use queues for scale).
- Post lifecycle:
pendingβpostedβfailed.
- Add Instagram posting (images & videos).
- Support AI-generated images/videos.
- Add post analytics (likes, impressions).
- Use job queues for large-scale scheduling.
- Full stack working application
- Twitter & LinkedIn integration
- AI chatbot (text-only)
- Content calendar & scheduling
- Immediate post support
- Documentation & README
Sujit Thakur β π Full Stack Developer | Fresher
π Portfolio | π» GitHub | βοΈ Email | π +91-7479713290