A modern, full-stack web application built with Next.js 15, featuring advanced animations, authentication, and AI-powered features.
- π Modern Stack: Built with Next.js 15, React 19, and TypeScript
- β‘ Turbopack: Lightning-fast development with Turbopack bundler
- π¨ Beautiful UI: Responsive design with Tailwind CSS and Radix UI components
- π Authentication: Secure JWT-based authentication system
- π Database: MongoDB integration with Mongoose ODM
- π Animations: Smooth animations powered by GSAP and Framer Motion
- π Dark Mode: Built-in dark/light theme support
- π± Responsive: Mobile-first responsive design
- π Search: Advanced search functionality
- π Blog: Built-in blog system
- πΌ Career Pages: Job listings and career information
- π Documentation: Comprehensive docs with interactive examples
- π€ AI Features: AI-powered functionality and chat system
- Framework: Next.js 15.2.4 with App Router
- Language: TypeScript 5
- Styling: Tailwind CSS 3.4.17
- UI Components: Radix UI primitives
- Animations: GSAP, Framer Motion
- Forms: React Hook Form with Zod validation
- State Management: React Context API
- Theme: next-themes for dark/light mode
- Runtime: Node.js with Next.js API routes
- Database: MongoDB with Mongoose ODM
- Authentication: JWT with bcryptjs
- Validation: Zod schema validation
- File Upload: Built-in file handling
- Bundler: Turbopack (development) / Webpack (production)
- Linting: ESLint with Next.js config
- Package Manager: npm/pnpm
- Version Control: Git
- Node.js 18+
- npm or pnpm
- MongoDB (local or Atlas)
-
Clone the repository
git clone https://github.com/elicharlese/ForSure.git cd ForSure
-
Install dependencies
npm install # or pnpm install
-
Set up environment variables
cp .env.example .env.local
Configure your environment variables:
# Database MONGODB_URI=mongodb://localhost:27017/forsure # Authentication JWT_SECRET=your-super-secret-jwt-key-here # App Configuration NEXT_PUBLIC_APP_URL=http://localhost:3000 NODE_ENV=development
-
Start the development server
npm run dev # or with Turbopack (recommended) npm run turbo
-
Open your browser Navigate to http://localhost:3000
ForSure/
βββ app/ # Next.js App Router
β βββ api/ # API routes
β β βββ auth/ # Authentication endpoints
β β βββ projects/ # Project management
β β βββ chat/ # AI chat functionality
β β βββ users/ # User management
β βββ (pages)/ # Application pages
β β βββ about/ # About page
β β βββ blog/ # Blog system
β β βββ careers/ # Career pages
β β βββ docs/ # Documentation
β β βββ ...
β βββ globals.css # Global styles
β βββ layout.tsx # Root layout
β βββ page.tsx # Home page
βββ components/ # Reusable components
β βββ ui/ # Base UI components
β βββ animated-*.tsx # Animation components
β βββ docs-*.tsx # Documentation components
β βββ ...
βββ contexts/ # React contexts
βββ hooks/ # Custom React hooks
βββ lib/ # Utility libraries
β βββ auth.ts # Authentication utilities
β βββ db.ts # Database connection
β βββ utils.ts # General utilities
βββ models/ # Database models
β βββ User.ts # User model
β βββ Project.ts # Project model
β βββ Team.ts # Team model
βββ public/ # Static assets
βββ styles/ # Additional styles
# Development with Turbopack (recommended)
npm run dev
# Development with Webpack
npm run dev:webpack
# Production build
npm run build
# Start production server
npm run start
# Lint code
npm run lint
# Turbopack development (alias)
npm run turbo
Create a .env.local
file with the following variables:
# Required
MONGODB_URI=mongodb://localhost:27017/forsure
JWT_SECRET=your-super-secret-jwt-key-here
# Optional
NEXT_PUBLIC_APP_URL=http://localhost:3000
NODE_ENV=development
NEXT_PUBLIC_ANALYTICS_ID=your-analytics-id
The application includes a complete authentication system:
- Registration:
/register
- Login:
/login
- Password Reset:
/forgot-password
- Protected Routes: Automatic redirection for authenticated content
- JWT Tokens: Secure token-based authentication
- Password Hashing: bcryptjs for secure password storage
POST /api/auth/register # User registration
POST /api/auth/login # User login
POST /api/auth/logout # User logout
GET /api/auth/me # Get current user
POST /api/auth/refresh # Refresh JWT token
{
_id: ObjectId
email: string
password: string (hashed)
name: string
avatar?: string
role: 'user' | 'admin'
createdAt: Date
updatedAt: Date
}
{
_id: ObjectId
title: string
description: string
owner: ObjectId (User)
collaborators: ObjectId[] (Users)
status: 'active' | 'completed' | 'archived'
createdAt: Date
updatedAt: Date
}
The application uses a comprehensive set of UI components built on Radix UI:
- Forms: Input, Textarea, Select, Checkbox, Radio
- Navigation: Dropdown, Menu, Tabs, Breadcrumb
- Feedback: Toast, Alert, Progress, Badge
- Overlay: Dialog, Popover, Tooltip, Sheet
- Data Display: Table, Card, Avatar, Separator
import { Button } from "@/components/ui/button"
import { Input } from "@/components/ui/input"
import { Card } from "@/components/ui/card"
export function MyComponent() {
return (
<Card className="p-6">
<Input placeholder="Enter your name" />
<Button className="mt-4">Submit</Button>
</Card>
)
}
-
Connect to Vercel
npm i -g vercel vercel
-
Set Environment Variables Configure the following in your Vercel dashboard:
MONGODB_URI
JWT_SECRET
NEXT_PUBLIC_APP_URL
-
Deploy
vercel --prod
The application can be deployed to any platform that supports Next.js:
- Netlify: Use the Next.js build command
- Railway: Connect your GitHub repository
- DigitalOcean: Use App Platform with Node.js
- AWS: Use Amplify or EC2 with PM2
# Run tests (when available)
npm test
# Run tests in watch mode
npm run test:watch
# Run tests with coverage
npm run test:coverage
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m 'Add some amazing feature'
- Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Follow TypeScript best practices
- Use ESLint and Prettier for code formatting
- Write meaningful commit messages
- Add tests for new features
- Update documentation as needed
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js - The React framework for production
- Tailwind CSS - A utility-first CSS framework
- Radix UI - Low-level UI primitives
- GSAP - Professional-grade animation
- MongoDB - The database for modern applications
- Documentation: /docs
- Issues: GitHub Issues
- Discussions: GitHub Discussions
Built with β€οΈ by the ForSure team
β Star us on GitHub β’ π Report Bug β’ β¨ Request Feature