A modern, responsive dashboard application for managing and monitoring API integrations with AdaptiveWorks, MongoDB, and Snowflake data sources.
This project demonstrates a production-ready Next.js application with:
- Next.js 16: Modern React framework with App Router
- MongoDB: NoSQL database for flexible data storage
- AdaptiveWorks API: Real-time project management data integration
- AG Grid: Advanced data grid for displaying and filtering results
- PWA Support: Progressive Web App with offline capabilities
- OTP Login: Secure one-time password authentication
- Environment-based: Configurable OTP via environment variables
- Alert Dialog: User-friendly error handling
- AdaptiveWorks: Real-time milestone tracking and management
- MongoDB: NoSQL data store with advanced filtering
- Snowflake: Data warehouse analytics (placeholder)
- Responsive Design: Mobile-first with hamburger menu
- Card-based Dashboard: Intuitive project navigation
- Data Grids: Sortable, filterable tables with pagination
- PWA Ready: Installable app with service worker
- Next.js 16: App Router with React 19
- Tailwind CSS: Utility-first styling
- shadcn/ui: High-quality UI components
- AG Grid: Enterprise data grid
- MongoDB: Document database
- Winston: Structured logging
- Next.js API Routes: RESTful endpoints
- Input OTP: One-time password input
- Alert Dialog: Modal dialogs
- Card: Content containers
- Button: Interactive elements
dashboard/
โโโ src/
โ โโโ app/
โ โ โโโ api/
โ โ โ โโโ adaptiveworks/ # AdaptiveWorks API endpoint
โ โ โ โโโ mongodb/ # MongoDB API endpoint
โ โ โ โโโ sync/ # Data sync endpoint
โ โ โโโ adaptiveworks/ # AdaptiveWorks page
โ โ โโโ dashboard/ # Main dashboard
โ โ โโโ mongodb/ # MongoDB page
โ โ โโโ snowflake/ # Snowflake page
โ โ โโโ lib/ # Utilities and DB connection
โ โ โโโ globals.css # Global styles
โ โ โโโ layout.js # Root layout
โ โ โโโ logger.js # Winston logger
โ โ โโโ page.js # Login page
โ โโโ components/
โ โ โโโ ui/ # shadcn/ui components
โ โ โโโ header.js # App header
โ โ โโโ footer.js # App footer
โ โ โโโ landing.js # Page wrapper
โ โ โโโ ServiceWorkerRegistration.js
โ โโโ lib/
โ โโโ utils.js # Utility functions
โโโ public/
โ โโโ manifest.json # PWA manifest
โ โโโ sw.js # Service worker
โ โโโ LycraLogo.png # Logo
โโโ .env.local # Environment variables
โโโ package.json
- Node.js 18.17 or later
- MongoDB instance
- AdaptiveWorks API key
-
Clone the repository
git clone <repository-url> cd dashboard
-
Install dependencies
npm install --legacy-peer-deps
-
Configure environment variables
Create
.env.local:MONGODB_URI=mongodb://localhost:27017/ ADAPTIVE_WORKS_API_KEY=<your-api-key> SERVER_URL=http://localhost:3000 NEXT_PUBLIC_OTP=123456 NEXT_PUBLIC_NODE_ENV=development
-
Run development server
npm run dev
-
Open application
Navigate to http://localhost:3000
npm run build
npm start- Secure login with configurable OTP
- Environment-based configuration
- Error handling with alert dialogs
- AG Grid Integration: Advanced filtering and sorting
- Pagination: 25/50 rows per page
- Date Filters: Column-specific date filtering
- Real-time Data: Live API integration
- Service Worker: Enabled in production mode
- Manifest: App installation support
- Offline Support: Cached resources
- Mobile Optimized: Responsive design
POST /api/adaptiveworks- Fetch AdaptiveWorks milestonesGET /api/mongodb- Retrieve MongoDB dataPOST /api/sync- Synchronize data sources
Set in production:
NEXT_PUBLIC_NODE_ENV=production
NEXT_PUBLIC_OTP=<secure-otp>
MONGODB_URI=<production-mongodb-uri>
ADAPTIVE_WORKS_API_KEY=<production-api-key>- Push code to GitHub
- Import repository in Vercel
- Configure environment variables
- Deploy
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production --legacy-peer-deps
COPY . .
RUN npm run build
EXPOSE 3000
CMD ["npm", "start"]- OTP authentication
- AdaptiveWorks API integration
- MongoDB data storage
- Responsive UI with hamburger menu
- PWA support with service worker
- Data grids with filtering/sorting
- Environment-based configuration
- Snowflake integration
- Real-time data synchronization
- Enhanced error handling
- GitHub Actions CI/CD
- Loading spinners and toasts
- Error and loading pages
- Swagger API documentation
- SSL certificate setup
- Advanced analytics dashboard
This project is licensed under the MIT License.
Shawn M. Crowley
- Email: shawn.crowley@lycra.com
- LinkedIn: @shawnmcrowley
Built with โค๏ธ using Next.js 16 and MongoDB