Skip to content

joMusangu/blueprint-system

Repository files navigation

Blueprint System

A comprehensive academic portfolio management system built with Next.js and Django. This application helps students organize their coursework, track grades, create flashcards, and manage their academic materials.

Features

πŸŽ“ Portfolio Management

  • Create and organize academic portfolios by course
  • Track progress and achievements
  • Share portfolios with peers and professors
  • Public and private portfolio options

πŸ“š Materials Library

  • Upload and organize study materials (PDFs, documents, images)
  • Tag and categorize materials by course and topic
  • Search and filter materials efficiently
  • Generate flashcards from uploaded materials

🧠 Flashcard System

  • Create custom flashcard decks
  • Spaced repetition learning algorithm
  • Study statistics and progress tracking
  • Import flashcards from materials

πŸ“Š Grade Tracking

  • Track grades across multiple courses
  • Calculate GPA automatically
  • Visualize grade trends over time
  • Set grade goals and targets

πŸ“… Academic Calendar

  • Manage deadlines and important dates
  • Import events from syllabi
  • Set reminders for assignments and exams
  • Track academic milestones

πŸͺ Marketplace

  • Browse and purchase study materials from other students
  • Sell your own study materials
  • Rate and review materials
  • Community-driven content

Tech Stack

Frontend

  • Next.js 14 - React framework with App Router
  • TypeScript - Type-safe JavaScript
  • Tailwind CSS - Utility-first CSS framework
  • Shadcn/ui - Modern UI component library
  • Lucide React - Beautiful icons

Backend

  • Django - Python web framework
  • Django REST Framework - API development
  • PostgreSQL - Database (configurable)
  • Session Authentication - Cookie-based auth

Getting Started

Prerequisites

  • Node.js 18+
  • Python 3.9+
  • Git

Frontend Setup

  1. Clone the repository:
git clone <repository-url>
cd blueprint-system
  1. Install dependencies:
npm install
  1. Start the development server:
npm run dev
  1. Open http://localhost:3000 in your browser.

Backend Setup

  1. Navigate to the backend directory:
cd HackWestTX-Complete-Backend
  1. Create a virtual environment:
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt
  1. Run migrations:
python manage.py migrate
  1. Create a superuser:
python manage.py createsuperuser
  1. Start the development server:
python manage.py runserver

The API will be available at http://localhost:8000.

Project Structure

blueprint-system/
β”œβ”€β”€ app/                    # Next.js app directory
β”‚   β”œβ”€β”€ dashboard/         # Dashboard pages
β”‚   β”œβ”€β”€ materials/         # Materials library pages
β”‚   β”œβ”€β”€ flashcards/        # Flashcard pages
β”‚   β”œβ”€β”€ grades/           # Grade tracking pages
β”‚   └── marketplace/      # Marketplace pages
β”œβ”€β”€ components/            # React components
β”‚   β”œβ”€β”€ auth/             # Authentication components
β”‚   β”œβ”€β”€ dashboard/        # Dashboard components
β”‚   β”œβ”€β”€ materials/        # Materials components
β”‚   β”œβ”€β”€ flashcards/       # Flashcard components
β”‚   └── ui/              # Reusable UI components
β”œβ”€β”€ lib/                  # Utility functions
└── public/              # Static assets

HackWestTX-Complete-Backend/
β”œβ”€β”€ api/                  # Django API app
β”œβ”€β”€ hackwesttx/          # Django project settings
└── manage.py            # Django management script

Key Features Implemented

βœ… Completed

  • User authentication and registration
  • Dashboard with portfolio overview
  • Materials library with upload functionality
  • Flashcard creation and study system
  • Grade tracking and visualization
  • Academic calendar and deadline management
  • Profile management
  • Responsive design for all devices

πŸ”„ In Progress

  • Marketplace functionality
  • Advanced search and filtering
  • Collaborative features
  • Mobile app development

API Endpoints

Authentication

  • POST /api/auth/register/ - User registration
  • POST /api/auth/login/ - User login
  • POST /api/auth/logout/ - User logout
  • GET /api/auth/me/ - Get current user

Materials

  • GET /api/materials/ - List materials
  • POST /api/materials/ - Upload material
  • GET /api/materials/{id}/ - Get material details
  • DELETE /api/materials/{id}/ - Delete material

Flashcards

  • GET /api/flashcards/ - List flashcard decks
  • POST /api/flashcards/ - Create flashcard deck
  • GET /api/flashcards/{id}/ - Get deck details
  • POST /api/flashcards/{id}/study/ - Record study session

Grades

  • GET /api/grades/ - List grades
  • POST /api/grades/ - Add grade
  • PUT /api/grades/{id}/ - Update grade
  • DELETE /api/grades/{id}/ - Delete grade

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some 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.

Acknowledgments

  • Built for HackWestTX 2024
  • Inspired by the need for better academic organization tools
  • Thanks to all contributors and the open-source community

Support

If you have any questions or need help, please:

  • Open an issue on GitHub
  • Contact the development team
  • Check the documentation

Made with ❀️ for students, by students

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors