Skip to main content

Projects

Siddharth Sengupta
Author
Siddharth Sengupta
Full Stack Software Developer
Table of Contents

Blonote
#

Tech Stack:

TypeScript, Cloudwfare Workers, Hono.js, PostgreSQL, Prisma, React, Tailwind

    • Created a Blogging site where users can Sign Up/Log In, read and write blogs with Notion-like text editing features like: multiple headings, images, lists, tables, text colouring, text alignment, etc
    • Created and deployed backend in Cloudfare Workers runtime for high performance and used Hono as the routing framework
    • Used Prisma Accelerate for Connection Pooling and Prisma ORM to store data on Postgres Database (deployed on Neon)
    • Used Zod for input schema validation, PBKDF2 for hashing password and JWT for authorization
    • Created responsive and optimal frontend using React and Tailwind

FlySh UNIX Shell
#

Tech Stack:

C, GNU Make, Syscalls, Compiler Design

    • Created a UNIX shell which can execute commands like: ls, echo, pwd, grep, mkdir, rm, cat, clear, touch, etc.
    • Implemented custom Lexer, Parser, Tokenizer and Abstract Syntax Tree (AST)
    • Executed tokenized commands using execv, fork and waitpid syscalls

Walletora: E-Wallet
#

Tech Stack:

React, Express, Node.js, MongoDB, JavaScript, Tailwind

    • Created a E-Wallet which follows ACID properties using MongoDB Transactions ensuring rollback mechanism
    • Created responsive frontend using React and Tailwind with which users can easily send money from one user to other
    • Implemented JWT authorization for Sign up/ Log in routes using JWT tokens stored in browser’s localStorage
    • Used Zod for input schema validation and Bcrypt to hash passwords
    • Used Mongoose to store data in MongoDB and used Vite as the build tool

Train Ticket Booking Management System
#

Tech Stack:

Java, Gradle

    • Created a CLI program based on OOPs principles using which users can book trains tickets from one destination to another
    • Features included: Sign up/Log in, Searching train according to source/destination, Booking tickets for seats of the selected train, Cancelling booking
    • Used Java8 features like: Stream API (to iterate easily and perform map/filter), Optional (to avoid NullPointerException)
    • Used Jackson ObjectMapper to serialize/deserialize data from/to JSON files where in-memory data about users and trains are stored, used Bcrypt to hash passwords and used Gradle as the build tool