TransferHub
A modern web application that helps students navigate the complex process of transferring course credits between educational institutions.
Features
- Open Access: Browse transfer credit information without requiring an account
- Course Mapping: Comprehensive database of course equivalencies between institutions
- User Contributions: Registered users can submit new transfer credit experiences
- Verification System: All submissions are verified by administrators
- Real-time Updates: Stay informed about the latest transfer credit mappings
Tech Stack
- Frontend: Next.js 14, React, TypeScript, Tailwind CSS
- Backend: Next.js API Routes, Prisma ORM
- Authentication: NextAuth.js
- Database: PostgreSQL
Prerequisites
- Node.js 18+
- PostgreSQL
- npm or yarn
Quick Start
Clone and Install
npm installSet up Environment
# Copy example env file and modify as needed cp .env.example .env
Required environment variables:
DATABASE_URL="postgresql://user:password@localhost:5432/transfer_credit_db"
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key"
Database Setup
# Run migrations and generate Prisma client npx prisma migrate devStart Development Server
npm run dev
Visit http://localhost:3000
Project Structure
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── (auth)/ # Authentication pages
│ └── ... # Other routes
├── components/ # React components
├── lib/ # Utilities and services
├── prisma/ # Database schema
└── types/ # TypeScript types
Development
npm run dev- Start development servernpm run build- Build for productionnpm run start- Start production servernpm run lint- Run ESLintnpm run db:studio- Open Prisma Studio
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
License
This project is licensed under the MIT License.
TransferHub
TransferHub is a modern web application designed to streamline the process of transferring credits between community colleges and universities. It helps students and academic advisors track and manage course transfer mappings efficiently.
Features
🔐 Authentication
- Google OAuth integration
- Secure user authentication
- Role-based access control (Admin, Moderator, User)
🏫 School Management
- Support for both community colleges and universities
- Comprehensive course catalog management
- School-specific course codes and credits
📚 Course Transfer System
- Track transfer mappings between institutions
- Status tracking (Pending, Approved, Rejected)
- Detailed course information and descriptions
- Credit hour management
👥 User Features
- User profiles with institution affiliations
- Contribution tracking for transfer mappings
- Role-based permissions and access
Tech Stack
Frontend
- Next.js 14
- TypeScript
- Tailwind CSS
- NextAuth.js
Backend
- Next.js API Routes
- Prisma ORM
- PostgreSQL Database
Getting Started
Prerequisites
- Node.js 18.x or later
- PostgreSQL database
- Google OAuth credentials
Environment Variables
Create a .env file in the root directory with the following variables:
DATABASE_URL="postgresql://user:password@localhost:5432/transferhub"
GOOGLE_CLIENT_ID="your-google-client-id"
GOOGLE_CLIENT_SECRET="your-google-client-secret"
NEXTAUTH_SECRET="your-nextauth-secret"
NEXTAUTH_URL="http://localhost:3000"
Installation
Clone the repository:
git clone https://github.com/yourusername/transferhub.git cd transferhubInstall dependencies:
npm installSet up the database:
npx prisma migrate devStart the development server:
npm run dev
The application will be available at http://localhost:3000.
Project Structure
transferhub/
├── app/ # Next.js app directory
│ ├── api/ # API routes
│ ├── auth/ # Authentication pages
│ └── (routes)/ # Application routes
├── components/ # React components
├── lib/ # Utility functions and configurations
├── prisma/ # Database schema and migrations
└── public/ # Static assets
Contributing
- Fork the repository
- Create your 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
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
- Next.js team for the amazing framework
- Prisma team for the excellent ORM
- All contributors who have helped shape this project
Log in or sign up for Devpost to join the conversation.