A modern web application that helps Faculty of Computing and Information Technology (FCIT) students find and join WhatsApp groups for their courses, ensuring they never miss important updates and can connect with their classmates.
- Course Search: Find WhatsApp groups by course code (CPIS, CPCS, CPIT, STAT, MATH, BUS, MRKT, ACCT) and course number
- Group Management: Add new groups to help other students in your courses
- Gender-Specific Groups: Support for general, male-only, and female-only groups
- Secure Authentication: User authentication powered by NextAuth.js
- Responsive Design: Beautiful UI built with Mantine components
- Real-time Updates: Stay connected with your classmates and course updates
- Node.js 18+ and npm/yarn
- A database (PostgreSQL recommended)
-
Clone the repository
git clone https://github.com/your-username/fcit-groups.git cd fcit-groups -
Install dependencies
npm install # or yarn install -
Set up environment variables
Rename
.env.exampleto.envand fill in your values:cp .env.example .env
Then edit the
.envfile with your configuration:# Database DATABASE_URL="postgres://YourUserName:YourPassword@YourHostname:5432/YourDatabaseName?schema=public" # NextAuth.js NEXTAUTH_SECRET="your-nextauth-secret" NEXTAUTH_URL="http://localhost:3000" # NextAuth Email Provider EMAIL_SERVER="smtp://YourUserName:YourPassword@YourHostname:587" EMAIL_FROM="your-email@example.com"
-
Set up the database
npx prisma db push
-
Run the development server
npm run dev # or yarn dev -
Open your browser
Navigate to http://localhost:3000 to see the application.
- Framework: Next.js 14 with App Router
- Language: TypeScript
- Authentication: NextAuth.js
- Database: Prisma ORM
- UI Library: Mantine
- Icons: Tabler Icons
- Styling: PostCSS with Mantine components
- Validation: Zod
src/
├── app/
│ ├── addAGroup/ # Add new WhatsApp groups
│ ├── findAGroup/ # Search and find existing groups
│ ├── api/ # API routes
│ │ ├── addGroup/ # Add group endpoint
│ │ ├── auth/ # NextAuth configuration
│ │ ├── listOfCourses/ # Get available courses
│ │ ├── searchGroup/ # Search groups endpoint
│ │ └── updateGender/ # Update user gender preference
│ └── components/ # Reusable UI components
├── server/
│ ├── auth.ts # Authentication configuration
│ └── db.ts # Database connection
└── styles/ # CSS modules and global styles
- Navigate to "Find a Group"
- Select your course code (e.g., CPIS, CPCS, CPIT)
- Choose the course number from the available options
- Browse available WhatsApp groups filtered by section and gender preference
- Click "Join" to access the WhatsApp group
- Go to "Add a Group"
- Fill in the course details and WhatsApp group link
- Specify the section and gender preference
- Submit to make the group available to other students
- Push your code to a Git repository
- Connect your repository to Vercel
- Configure environment variables in Vercel dashboard
- Deploy automatically with each push
# Build the application
npm run build
# Start the production server
npm startnpm run dev- Start development servernpm run build- Build for productionnpm run start- Start production server (runs on port 7435)npm run lint- Run ESLintnpm run db:push- Push database schema changesnpm run db:studio- Open Prisma Studio for database management
Made with ❤️ for FCIT students