Skip to content

Academic Connect streamlines student advising, course planning, and academic success tracking for universities and educational institutions.

Notifications You must be signed in to change notification settings

ogeobubu/studysync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Academic Connect

A comprehensive academic advising and management system built with React and Node.js, designed to connect students with academic advisors and streamline the academic guidance process.

Academic Connect Dashboard

🌟 Features

For Students

  • Dashboard Overview: Personalized dashboard with academic summary and quick actions
  • Course Management: Register for courses, view academic records, and track progress
  • Academic Advising: Request advising sessions with preferred scheduling
  • Real-time Chat: Direct messaging with assigned academic advisors
  • Course Recommendations: AI-powered course suggestions based on academic progress
  • Grade Tracking: Monitor scores, GPA, and CGPA with visual progress indicators
  • Profile Management: Update personal information and academic details

For Advisors

  • Student Management: View and manage assigned students
  • Advising Requests: Handle incoming student requests and assign appointments
  • Real-time Messaging: Communicate directly with students
  • Progress Tracking: Monitor student academic performance
  • Dashboard Analytics: Overview of advising activities and student metrics

For Administrators

  • System Overview: Comprehensive dashboard with system-wide analytics
  • User Management: Manage students, advisors, and system users
  • Request Management: Oversee and assign advising requests
  • Analytics & Reporting: Track system usage and performance metrics
  • System Configuration: Manage system settings and configurations

πŸš€ Demo Mode

Experience Academic Connect without setting up a backend server! Our demo mode provides a fully functional preview with sample data.

Demo Accounts

Role Email Password Description
Student [email protected] Any password Full student experience with sample academic data
Advisor [email protected] Any password Complete advisor dashboard with student management
Admin [email protected] Any password System administration with full analytics

Activating Demo Mode

  1. Click the "Enable Demo" button in the bottom-left corner of the login page
  2. Log in with any of the demo accounts above
  3. Explore all features with pre-populated sample data
  4. Use "Disable Demo Mode" to return to production mode

πŸ› οΈ Technology Stack

Frontend

  • React 18 - Modern React with hooks and concurrent features
  • TypeScript - Type-safe development experience
  • Tailwind CSS - Utility-first CSS framework for rapid UI development
  • React Router - Client-side routing and navigation
  • TanStack Query - Powerful data synchronization for React
  • React Hot Toast - Beautiful toast notifications
  • Lucide React - Beautiful & customizable SVG icons
  • date-fns - Modern JavaScript date utility library

Backend

  • Node.js - JavaScript runtime for server-side development
  • Express.js - Fast, unopinionated web framework
  • MongoDB - NoSQL database for flexible data storage
  • Mongoose - MongoDB object modeling for Node.js
  • JWT - JSON Web Tokens for secure authentication
  • Bcrypt - Password hashing for security
  • Multer - File upload handling
  • Nodemailer - Email sending capabilities

πŸ“¦ Installation & Setup

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn package manager
  • MongoDB (local installation or cloud connection)

Quick Start

  1. Clone the repository

    git clone https://github.com/yourusername/studysync.git
    cd studysync
  2. Install dependencies

    # Install client dependencies
    cd client
    npm install
    
    # Install server dependencies (if applicable)
    cd ../server
    npm install
  3. Environment Setup

    Create a .env file in the client directory:

    VITE_API_URL=http://localhost:5000/api
    VITE_DEMO_MODE=false

    Create a .env file in the server directory (if using backend):

    PORT=5000
    MONGODB_URI=mongodb://localhost:27017/studysync
    JWT_SECRET=your-super-secret-jwt-key
    EMAIL_HOST=smtp.gmail.com
    EMAIL_PORT=587
    EMAIL_USER=[email protected]
    EMAIL_PASS=your-app-password
  4. Start the development servers

    # Start the client (from client directory)
    npm run dev
    
    # Start the server (from server directory, if applicable)
    npm run dev
  5. Access the application

    • Frontend: http://localhost:5173
    • Backend API: http://localhost:5000

🎯 Usage Guide

Getting Started

  1. First Time Setup

    • Enable demo mode for instant access, or
    • Register a new account with your preferred role
    • Verify your email address (in production mode)
  2. Student Workflow

    • Complete your profile with academic information
    • Register for courses based on your program
    • Submit advising requests when needed
    • Chat with your assigned advisor
    • Track your academic progress
  3. Advisor Workflow

    • Review incoming advising requests
    • Assign yourself to student requests
    • Communicate with students via chat
    • Monitor student progress
    • Provide academic guidance
  4. Admin Workflow

    • Monitor system-wide analytics
    • Manage user accounts and permissions
    • Oversee advising request assignments
    • Configure system settings

πŸ—‚οΈ Project Structure

studysync/
β”œβ”€β”€ client/                          # React frontend application
β”‚   β”œβ”€β”€ public/                      # Static assets
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ api/                     # API integration layer
β”‚   β”‚   β”‚   β”œβ”€β”€ http.ts             # Basic HTTP client
β”‚   β”‚   β”‚   β”œβ”€β”€ httpEnhanced.ts     # Enhanced HTTP client with demo support
β”‚   β”‚   β”‚   └── useHttp.ts          # React Query hooks
β”‚   β”‚   β”œβ”€β”€ components/             # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ admin/              # Admin-specific components
β”‚   β”‚   β”‚   β”œβ”€β”€ advisor/            # Advisor-specific components
β”‚   β”‚   β”‚   β”œβ”€β”€ student/            # Student-specific components
β”‚   β”‚   β”‚   β”œβ”€β”€ chat/               # Chat system components
β”‚   β”‚   β”‚   └── ui/                 # Base UI components
β”‚   β”‚   β”œβ”€β”€ context/                # React context providers
β”‚   β”‚   β”œβ”€β”€ layouts/                # Layout components
β”‚   β”‚   β”œβ”€β”€ pages/                  # Page components
β”‚   β”‚   β”œβ”€β”€ routes/                 # Routing configuration
β”‚   β”‚   β”œβ”€β”€ services/               # Business logic services
β”‚   β”‚   β”œβ”€β”€ types/                  # TypeScript type definitions
β”‚   β”‚   └── lib/                    # Utility functions
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.ts
β”œβ”€β”€ server/                         # Node.js backend (if applicable)
β”‚   β”œβ”€β”€ controllers/                # Route controllers
β”‚   β”œβ”€β”€ middleware/                 # Express middleware
β”‚   β”œβ”€β”€ models/                     # Database models
β”‚   β”œβ”€β”€ routes/                     # API routes
β”‚   β”œβ”€β”€ utils/                      # Utility functions
β”‚   └── server.js                   # Main server file
└── README.md

πŸ”§ Key Features Deep Dive

Demo System

The application includes a sophisticated demo system that:

  • Simulates real API responses with realistic data
  • Maintains state across sessions using localStorage
  • Provides three different user role experiences
  • Includes complete CRUD operations for all features
  • Demonstrates the full application workflow

Authentication System

  • JWT-based authentication with role-based access control
  • Email verification for new accounts
  • Password reset functionality with OTP verification
  • Secure session management
  • Protected routes based on user roles

Real-time Chat System

  • Direct messaging between students and advisors
  • Message history persistence
  • Real-time message delivery
  • File sharing capabilities (in production)
  • Chat session management

Academic Progress Tracking

  • GPA and CGPA calculations
  • Course registration and grade management
  • Academic standing monitoring
  • Progress visualization with charts
  • Transcript generation

🎨 Design System

The application uses a consistent design system built with Tailwind CSS:

  • Color Palette: Professional blue and gray theme
  • Typography: Clear hierarchy with readable fonts
  • Components: Consistent button styles, form elements, and cards
  • Responsive Design: Mobile-first approach with breakpoint considerations
  • Accessibility: WCAG compliant with proper ARIA labels and keyboard navigation

πŸ§ͺ Testing

# Run client tests
cd client
npm run test

# Run server tests (if applicable)
cd server
npm run test

# Run end-to-end tests
npm run test:e2e

πŸš€ Deployment

Frontend Deployment (Vercel/Netlify)

  1. Build the application

    cd client
    npm run build
  2. Deploy to Vercel

    npm install -g vercel
    vercel --prod
  3. Environment Variables Set the following in your deployment platform:

    VITE_API_URL=https://your-backend-url.com/api
    VITE_DEMO_MODE=true  # Enable for demo deployments
    

Full Stack Deployment (Railway/Heroku)

  1. Prepare for deployment

    # Add build scripts to package.json
    "scripts": {
      "build": "cd client && npm install && npm run build",
      "start": "node server/server.js"
    }
  2. Deploy to Railway

    npm install -g @railway/cli
    railway login
    railway deploy

🀝 Contributing

We welcome contributions! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Commit with descriptive messages
    git commit -m "Add amazing feature that does X"
  5. Push to your branch
    git push origin feature/amazing-feature
  6. Open a Pull Request

Code Style Guidelines

  • Use TypeScript for all new code
  • Follow the existing component structure
  • Add proper type definitions
  • Include JSDoc comments for complex functions
  • Write tests for new features
  • Ensure responsive design compatibility

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ†˜ Support & FAQ

Common Issues

Q: Demo mode isn't working properly A: Make sure you've clicked "Enable Demo" and are using the correct demo credentials. Clear your browser cache if issues persist.

Q: Real-time chat isn't updating A: The demo chat updates when you send messages. In production, this would use WebSocket connections for real-time updates.

Q: Course registration fails A: Ensure you've selected valid session and semester values, and that you're not already registered for the course.

Getting Help

πŸ™ Acknowledgments

  • React Team - For the amazing React framework
  • Tailwind CSS - For the utility-first CSS framework
  • Lucide - For the beautiful icon set
  • TanStack - For the powerful React Query library
  • Vercel - For easy deployment and hosting

Built with ❀️ for academic institutions worldwide

Academic Connect - Bridging the gap between students and academic success

About

Academic Connect streamlines student advising, course planning, and academic success tracking for universities and educational institutions.

Topics

Resources

Stars

Watchers

Forks