My name is Benjamin Johnson. I'm a junior at UC San Diego, majoring in Computer Science.
I'm interested in web and mobile development, game development, AI, embedded systems, and computer vision.
I also enjoy hiking, running, chess, board games, puzzles, and video games.
- Email: [email protected]
- LinkedIn: linkedin.com/in/~benjamin-johnson
I created this budgeting tool that allows users to enter and track budgets and expenses. Users can budget their planned expenses by category, and can do so by week, month, or year. They can use raw dollar amounts or percentages of income. Users can enter their actual expenses one transaction at a time, then compare their actual vs. planned total spending by category. There are bar and pie charts to easily compare this information. Expense lists and comparison data can be exported as CSV files.
I used React, Next.js, MaterialUI, and TypeScript for the front end, and Django, Postgres, and SwaggerUI for the back end. I used the Django Rest Framework to create Rest APIs in Django, and the DRF Spectacular package to document the API and generate an API spec that can be served as a SwaggerUI page. I also used this API spec to generate a client library for my front end, reducing the need for boilerplate, repetitive API-fetching code.
I created this website for playing single-player and multi-player games. Users can play Tic-Tac-Toe, Dots and Boxes, and Tetris. Users can send each other friend requests and play against their friends, or play against a random opponent.
I used Express and Node for the server, React for the front end, a MongoDB database for users, friends, and games, Konva for rendering games, and Socket.IO for real-time client-server communication. I also used Passport and Bcrypt for session authentication.
I built this website as a way for students to visualize, and therefore better understand, various CS-related algorithms. So far, I have visualizations for arrays and linked lists.
I used Next.js, React, and TypeScript, as well as D3 to display and animate shapes that represent the data structures (for example, bars of different heights for array elements).
I developed this website to be a platform for users to view and buy rugs, and for admins to post new rugs. Users can add rugs to their carts and then check out, just like a real e-commerce site but without actual payments. Users can also subscribe to receive emails when an admin posts a new rug.
I made a Django server, using Django REST Framework to create REST APIs to authenticate users and track rugs, orders, and carts. I used Django's ORM and default SQLite database. I wrote the front end using React and TypeScript.
I created a mobile app using Flutter for users to review and study by answering practice problems. The app tracks their progress, so they can see how many questions they're getting right and wrong.
I wrote an Express server, with a MongoDB database, to handle token authentication and supply problems, answers, and users' progress to the front end.