Skip to content

LukeHoweth/UniTalk

Repository files navigation

🌍 UniTalk

UniTalk is a language learning exchange web application designed for Manchester Metropolitan University students. It provides a platform for students to connect with peers who are native speakers of languages they want to learn, while offering help with languages they speak fluently.

Screenshot 2025-05-07 at 23 56 28

🚀 Features

  • User Profiles with native and target language preferences
  • Language Proficiency Levels to match appropriate partners
  • Interest-based Matching to find compatible language partners
  • Real-time Messaging with grammar correction tools
  • Connection Management to build your language exchange network

🛠️ Tech Stack

  • Frontend: Next.js 14 with App Router, React 18, TypeScript
  • UI: HeroUI components, TailwindCSS for styling
  • State Management: Zustand
  • Form Handling: React Hook Form with Zod validation
  • Authentication: NextAuth.js v5 (Auth.js)
  • Database: PostgreSQL with Prisma ORM
  • Real-time functionality: Pusher for real-time messaging
  • Image Hosting: Cloudinary
  • Testing: Jest with React Testing Library

🔧 Getting Started

First, run the development server:

npm run dev
# or
npm run build
# then
npm start

Open http://localhost:3000 with your browser to see the result.

🗄️ Database Setup

The application uses PostgreSQL. There are two databases:

  • unitalk: Main development database
  • unitalk_test: Separate test database for running tests

Database Commands

# Reset and seed the main development database
npm run db:reset

# Seed the main database (assumes migrations already applied)
npm run db:seed

# Setup the test database (reset and migrate)
npm run test:db:setup

🧪 Testing

Tests are configured to run on the separate unitalk_test database to ensure they don't affect the development data.

# Run all tests
npm run test

# Run specific test file
npm run test tests/db/models.test.ts

# Run tests in watch mode
npm run test:watch

📚 Learn More

To learn more about the technologies used in this project:

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages