Skip to content

pankajbaria712/Skill-Tracker-and-Personalized-Roadmap-Generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

48 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Skill Tracker and Personalized Roadmap Generator

A comprehensive web application for tracking skills, generating personalized learning roadmaps, and managing professional development goals.

πŸš€ Features

Frontend (React + Vite)

  • Modern UI: Built with React, Vite, and Tailwind CSS
  • Dashboard: Interactive skill tracking with progress visualization
  • AI-Powered Roadmaps: Generate personalized learning paths
  • Responsive Design: Mobile-first approach with adaptive layouts
  • Authentication: Secure user login and registration
  • Real-time Updates: Live progress tracking and notifications

Backend (Node.js + Express)

  • RESTful API: Well-structured endpoints for all operations
  • Authentication: JWT-based secure authentication
  • Database Integration: Firebase for data persistence
  • Skill Management: CRUD operations for skills and progress
  • Roadmap Generation: AI-powered personalized roadmaps

πŸ› οΈ Tech Stack

Frontend

  • React 18 - Modern React with hooks
  • Vite - Fast build tool and dev server
  • Tailwind CSS - Utility-first CSS framework
  • React Router - Client-side routing
  • Axios - HTTP client for API calls
  • Firebase - Authentication and data storage

Backend

  • Node.js - JavaScript runtime
  • Express.js - Web application framework
  • Firebase Admin SDK - Server-side Firebase operations
  • JWT - JSON Web Tokens for authentication
  • CORS - Cross-origin resource sharing

πŸ“ Project Structure

skill-tracker-website/
β”œβ”€β”€ skill-tracker-frontend/          # React frontend application
β”‚   β”œβ”€β”€ public/                      # Static assets
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/              # Reusable UI components
β”‚   β”‚   β”‚   β”œβ”€β”€ Auth/               # Authentication components
β”‚   β”‚   β”‚   β”œβ”€β”€ Dashboard/          # Dashboard components
β”‚   β”‚   β”‚   β”œβ”€β”€ home/               # Landing page components
β”‚   β”‚   β”‚   └── ...
β”‚   β”‚   β”œβ”€β”€ contexts/               # React contexts
β”‚   β”‚   β”œβ”€β”€ firebase/               # Firebase configuration
β”‚   β”‚   β”œβ”€β”€ pages/                  # Page components
β”‚   β”‚   β”œβ”€β”€ utils/                  # Utility functions
β”‚   β”‚   └── ...
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”‚
β”œβ”€β”€ skill-tracker-backend/           # Node.js backend application
β”‚   β”œβ”€β”€ controllers/                 # Route controllers
β”‚   β”œβ”€β”€ middleware/                  # Custom middleware
β”‚   β”œβ”€β”€ models/                      # Data models
β”‚   β”œβ”€β”€ routes/                      # API routes
β”‚   β”œβ”€β”€ config/                      # Configuration files
β”‚   β”œβ”€β”€ server.js                    # Main server file
β”‚   └── package.json
β”‚
└── README.md                        # Project documentation

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • Git
  • Firebase project (for authentication and database)

Installation

  1. Clone the repository

    git clone https://github.com/pankajbaria712/Skill-Tracker-and-Personalized-Roadmap-Generator.git
    cd skill-tracker-website
  2. Backend Setup

    cd skill-tracker-backend
    npm install

    Create a .env file in the backend directory:

    PORT=5000
    FIREBASE_PROJECT_ID=your-project-id
    FIREBASE_PRIVATE_KEY=your-private-key
    FIREBASE_CLIENT_EMAIL=your-client-email
    JWT_SECRET=your-jwt-secret
  3. Frontend Setup

    cd ../skill-tracker-frontend
    npm install

    Create a .env file in the frontend directory:

    VITE_API_BASE_URL=http://localhost:5000/api
    VITE_FIREBASE_API_KEY=your-firebase-api-key
    VITE_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
    VITE_FIREBASE_PROJECT_ID=your-project-id

Firebase Setup

  1. Create a Firebase project at Firebase Console
  2. Enable Authentication and Firestore Database
  3. Generate a service account key for the backend
  4. Update the environment variables with your Firebase credentials

Running the Application

  1. Start the Backend

    cd skill-tracker-backend
    npm start
  2. Start the Frontend

    cd skill-tracker-frontend
    npm run dev
  3. Access the Application

πŸ“‘ API Endpoints

Authentication

  • POST /api/auth/register - User registration
  • POST /api/auth/login - User login
  • POST /api/auth/logout - User logout

Skills

  • GET /api/skills - Get all user skills
  • POST /api/skills - Create new skill
  • PUT /api/skills/:id - Update skill
  • DELETE /api/skills/:id - Delete skill

Roadmaps

  • GET /api/roadmaps - Get user roadmaps
  • POST /api/roadmaps - Generate new roadmap
  • PUT /api/roadmaps/:id - Update roadmap

🎨 UI Components

The frontend includes various reusable components:

  • Navbar: Navigation with user menu
  • Sidebar: Dashboard navigation
  • ProgressRing: Circular progress indicators
  • ActivityFeed: Recent activity display
  • RoadmapSection: Interactive roadmap display
  • AIResourceModal: AI-powered resource suggestions

πŸ”§ Development

Available Scripts

Frontend:

npm run dev          # Start development server
npm run build        # Build for production
npm run preview      # Preview production build
npm run lint         # Run ESLint

Backend:

npm start            # Start production server
npm run dev          # Start development server with nodemon
npm test             # Run tests

Code Quality

  • ESLint for code linting
  • Prettier for code formatting
  • Husky for git hooks

πŸš€ Deployment

Frontend Deployment

cd skill-tracker-frontend
npm run build
# Deploy the dist/ folder to your hosting service

Backend Deployment

cd skill-tracker-backend
npm run build
# Deploy to your preferred Node.js hosting service

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

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

πŸ“ž Contact

For questions or support, please open an issue on GitHub.

πŸ™ Acknowledgments

  • React community for excellent documentation
  • Tailwind CSS for the amazing utility-first approach
  • Firebase for seamless backend integration
  • All contributors and supporters

Happy Learning! πŸš€

About

A full-stack application designed to help users effectively track their current skills and generate personalized learning roadmaps to achieve specific career or knowledge goals.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

Β 
Β 
Β 

Contributors