Software Development with Claude Code
Dani Zysman
AI Curriculum Manager @ DataCamp


music-analytics-api/
app.py # Application entry point
routes.py # API endpoints
models.py # Artist/Album models
analytics.py # Statistics functions
middleware.py # Request logging
config.py # Session settings
A simple Music Analytics API with existing patterns we need to respect.
CLAUDE.md:
> /init
Music Analytics API
A Flask-based REST API for music data analytics.
Project Structure
- app.py Flask application entry point
- routes.py API endpoint definitions
- analytics.py Statistical analysis functions
Coding Conventions
- Use type hints for function parameters
- Include docstrings for all public functions
- Follow PEP 8 style guidelines
Shift+Tab or type /planCtrl+G to visualize, approve, review, or edit it> Add a /api/login endpoint that creates a session for a user
from flask import jsonify, request
from flask_login import LoginManager, login_user
from app import app
login_manager = LoginManager(app)
@app.route('/api/login', methods=['POST'])
def login():
"""Handle user login and create session."""
data = request.get_json()
user = User.query.filter_by(username=data['username']).first()
if user and user.password == data['password']:
login_user(user)
return jsonify({'status': 'success'})
return jsonify({'error': 'Invalid credentials'}), 401
> /plan Add a /api/login endpoint that creates a session for a user
Plan: Add POST /api/login endpoint
Context
The music analytics API has session infrastructure in place
(flask_session, SECRET_KEY, session already imported in routes)
but no authentication.
Files to Modify
- models.py: add User class, UserStore class, user_store singleton
- routes.py: expand import, add login route
No changes needed to app.py, config.py, middleware.py, or analytics.py.
> think about how to add authentication to this API
| Command | Reasoning Depth |
|---|---|
think |
Basic reasoning |
think more |
Extended reasoning |
think a lot |
Comprehensive reasoning |
think longer |
Extended time reasoning |
ultrathink |
Maximum reasoning |

/clear
Software Development with Claude Code