JSONL Viewer SaaS Application

Overview

This is a Flask-based SaaS application that allows users to view and vote on JSONL (JSON Lines) entries. Users can upvote or downvote entries, and earn points for participating in the majority vote. The application includes user authentication, a dashboard, a JSONL viewer, and a highscore board.

Features

  • User Authentication:
    • Login
    • Logout
    • Forgot Password functionality
  • Dashboard: Access to JSONL viewer and highscores
  • JSONL Viewer:
    • View random JSONL entries
    • Upvote or downvote entries
    • Skip entries
  • Highscore Board: Track top users based on their voting accuracy
  • PostgreSQL Database: Store user data, JSONL entries, and votes

Tech Stack

  • Backend: Flask (Python)
  • Database: PostgreSQL
  • ORM: SQLAlchemy
  • Authentication: Flask-Login
  • Containerization: Docker and Docker Compose

Setup and Installation

  1. Clone the repository:

    git clone <repository-url>
    cd <project-directory>
    
  2. Make sure you have Docker and Docker Compose installed on your system.

  3. Build and run the Docker containers:

    docker-compose up --build
    
  4. The application should now be running at http://localhost:5000

Usage

  1. Register a new user account (you'll need to implement this functionality)
  2. Log in with your credentials
  3. Use the dashboard to navigate to the JSONL viewer or highscores
  4. In the JSONL viewer, you can vote on entries or skip them
  5. Check the highscore board to see your ranking

Uploading JSONL Dataset

To upload your JSONL dataset:

  1. Implement a function to read the JSONL file and populate the JSONLEntry table in the database.
  2. You can add this functionality to a management command or create an admin interface to upload the file.

Project Structure

.
├── app.py
├── Dockerfile
├── docker-compose.yml
├── requirements.txt
├── README.md
└── templates
    ├── index.html
    ├── login.html
    ├── forgot_password.html
    ├── dashboard.html
    ├── highscore.html
    └── jsonl_viewer.html

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

[Add your chosen license here]

Contact

[Add your contact information here]