This is a full stack practical for Junior Developer at Citizens Advice SORT. The project consists of a full-stack application with a Python backend and Next.js frontend.
junior-developer/
├── backend/
│ ├── data/
│ │ └── mock.json # Mock data containing content and sources
│ ├── main.py # FastAPI backend server
│ └── models.py # Data models and schemas
├── frontend/
│ ├── src/
│ │ ├── app/
│ │ │ ├── page.tsx # Main page component
│ │ │ └── layout.tsx # App layout
│ │ └── components/
│ │ └── Content.tsx # Content display component
│ └── public/
│ └── logo.png # Citizens Advice logo
└── Makefile # Build and run commands
In the backend, you need to:
- Identify cited sources within the content from
mock.json - Replace document IDs with actual links to the sources
- Extract favicon URLs from the source websites
The Content.tsx component has been provided for you to:
- Display each piece of content and its associated sources, both cited and non-cited
- Show favicons from the source websites alongside each source
- Create a clean, user-friendly interface
- Python 3.10+
- Node.js 18+
- npm
- poetry
-
Clone the repository - DO NOT FORK
git clone https://github.com/Citizens-Advice-SORT/junior-developer.git cd junior-developer -
Install backend dependencies
cd backend poetry install --no-root -
Install frontend dependencies
cd frontend npm install
Use the provided Makefile for easy setup:
# Install all dependencies
make install
# Run both frontend and backend
make dev
# OR INDIVIDUALLY
# Start the backend server
make run-backend
# Start the frontend development server
make run-frontendOr run manually:
Backend:
cd backend
poetry run fastapi dev main.pyFrontend:
cd frontend
npm run devGET /data- Returns the list of data
Please respond to the invitation email with a link to your complete repository.
If you have any problems or are unsure about any of the steps please email technology@casort.org
