papers-gemini-archive-4-

๐Ÿ“š Terminal Archives - Previous Year Papers Repository

A secure, terminal-themed web application for archiving and searching previous year exam papers. Built with Flask and designed with a retro terminal aesthetic.

License Python Flask

๐ŸŒ Live Demo

View GitHub Pages Demo โ†’

โ„น๏ธ Note: The GitHub Pages site shows a static demo/documentation page. This is a Flask application that requires a Python server to run locally for full functionality. See Setup Instructions below.

๐ŸŽฏ Project Purpose

This application provides a centralized platform for students to:

โœจ Features

Security Features (Rating: 8/10)

User Experience (Rating: 9/10)

Technical Stack (Rating: 8/10)

๐Ÿš€ Setup Instructions

Prerequisites

Installation

  1. Clone the repository
    git clone https://github.com/anacondy/papers-gemini-archive-4-.git
    cd papers-gemini-archive-4-
    
  2. Install dependencies
    pip install -r requirements.txt
    
  3. Configure environment variables
    cp .env.example .env
    

    Edit .env and set:

    • SECRET_KEY: A strong random secret key
    • ADMIN_PASSWORD: Your admin password
    • DEBUG: Set to False for production
  4. Run the application
    python app.py
    
  5. Access the application
    • Main interface: http://localhost:5000
    • Admin login: http://localhost:5000/admin/login

๐Ÿ“– Usage Guide

For Students (Searching Papers)

  1. Desktop: Press Ctrl+K to open search modal
  2. Mobile: Use the search bar at the bottom
  3. Type your query (e.g., โ€œPhysics 2024โ€, โ€œBSc Semester Iโ€)
  4. Click on results to download papers

For Admins (Uploading Papers)

  1. Navigate to /admin/login
  2. Enter your admin password
  3. Fill in the paper details:
    • Your name
    • Class (BA, BSc, etc.)
    • Subject
    • Semester
    • Exam year
    • Exam type
    • Medium (English/Hindi/Hinglish)
    • Time and marks (optional)
  4. Upload PDF file (max 16MB)
  5. Paper metadata is automatically embedded in the PDF

Admin Shortcut

Type upload in the search box to quickly access admin login (youโ€™ll be prompted for your name).

๐Ÿ”’ Security Best Practices

For Deployment

  1. Use HTTPS: Always deploy with SSL/TLS certificates
  2. Strong Passwords: Use a strong, random admin password
  3. Environment Variables: Never commit .env file to git
  4. Regular Updates: Keep dependencies updated
  5. Backup: Regularly backup the uploads/ directory
  6. Monitoring: Monitor logs for suspicious activity

Default Security Settings

๐Ÿ“ Project Structure

papers-gemini-archive-4-/
โ”œโ”€โ”€ app.py                  # Main Flask application
โ”œโ”€โ”€ requirements.txt        # Python dependencies
โ”œโ”€โ”€ .env.example           # Environment variables template
โ”œโ”€โ”€ .gitignore            # Git ignore rules
โ”œโ”€โ”€ LICENSE               # MIT License
โ”œโ”€โ”€ README.md             # This file
โ”œโ”€โ”€ static/               # Static assets
โ”‚   โ”œโ”€โ”€ script.js        # Frontend JavaScript
โ”‚   โ””โ”€โ”€ style.css        # Styles
โ”œโ”€โ”€ templates/           # HTML templates
โ”‚   โ”œโ”€โ”€ index.html      # Main terminal interface
โ”‚   โ”œโ”€โ”€ upload.html     # Admin upload form
โ”‚   โ””โ”€โ”€ login.html      # Admin login page
โ””โ”€โ”€ uploads/            # PDF storage (not in git)

๐ŸŽจ Customization

Changing the Theme

Edit style.css variables:

:root {
    --primary-color: #4CAF50;  /* Main accent color */
    --bg-color: #1a1a1a;       /* Background */
    --text-color: #e0e0e0;     /* Text color */
}

Adding More Subjects/Classes

Edit the dropdown options in templates/upload.html.

๐Ÿ› Troubleshooting

โ€œModule not foundโ€ errors

pip install -r requirements.txt

โ€œPermission deniedโ€ on uploads

chmod 755 uploads/

Rate limit errors

Adjust limits in app.py or wait for the cooldown period.

๐Ÿ“Š Project Ratings

Category Rating Notes
Security 8/10 Strong security measures, could add 2FA
Setup Ease 9/10 Simple pip install and run
Code Quality 8/10 Clean, well-structured, documented
UI/UX 9/10 Unique terminal theme, responsive
Innovation 7/10 Creative UI approach, standard backend
Documentation 9/10 Comprehensive README and comments
Maintainability 8/10 Modular code, easy to extend

Overall Score: 8.3/10

๐Ÿšง Known Limitations

๐Ÿ”ฎ Future Enhancements

๐Ÿค Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

๐Ÿš€ Deployment

GitHub Pages (Demo/Documentation)

This repository includes a static demo page in the /docs folder. To enable GitHub Pages:

  1. Go to repository Settings โ†’ Pages
  2. Under Source, select:
    • Branch: main
    • Folder: /docs
  3. Click Save
  4. The demo will be available at: https://anacondy.github.io/papers-gemini-archive-4-/

Note: GitHub Pages only hosts the static demo page. For the full Flask application, deploy to a platform that supports Python:

๐Ÿ“„ License

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

๐Ÿ‘ค Author

Anuj Meena

๐Ÿ™ Acknowledgments


โš ๏ธ Important Security Note: This application includes basic security features suitable for small-scale deployments. For production use with sensitive data, consider additional security measures like:


Made with โค๏ธ for students everywhere