Awesome
<h1 align="center">🚧 UNDER CONSTRUCTION 🚧</h1> <p> <img alt="Version" src="https://img.shields.io/badge/version-0.1.0-blue.svg?cacheSeconds=2592000" /> </p>Latest portfolio of Samuel Yusuf
This project is still under construction! Feel free to set it up yourself though 😉
✨ Stack
- Main
- Framework: Next.js & TypeScript
- Styling: SCSS
- Program/Journal/Feed
- Drag: react-draggable
- ORM: Prisma
- Database: Railway
- Server: tRPC
- Authentication: next-auth
- Content: Contentlayer
- Testing
- Unit Testing: Jest
- Integration Testing: React Testing Library
- E2E Testing: Cypress
- Tooling
- Git Hooks: Husky & lint-staged
- Formatting: ESLint & Prettier
- Package Manager: pnpm
- Others
- PWA: next-pwa
- Theming: next-themes
- UI Docs: Storybook
😎 Overview
components/*
- React components for the appcomponents/Icons/*
- SVG icons as React componentscomponents/Programs/*
- Invididual program componentscypress/*
- Files related to Cypress/E2E testingdata/*
- Static data for various componentsenv/*
- Environment variable validationpages/*
- Pages for app (there's only 1 main page)pages/_offline.tsx
- Offline fallback page for PWApages/api/*
- All API related tasksposts/*
- Markdown files for the content of my blogprisma/*
- My Prisma schema, which uses a CockroachDB databasepublic/*
- Static assets including fonts and imagesserver/*
- The backend, which is a tRPC serverstyles/*
- Global SCSS filestypes/*
- Global type declarationsutils/*
- Utility functionsworker/*
- Service workers
🔧 Setup
git clone https://github.com/Goggwell/newfolio.git
cd newfolio
npm i -g pnpm # this app requires pnpm
pnpm i
pnpm dev
Also set up your own .env
(example provided at .env.example
)
🚀 Usage
pnpm dev # development
pnpm build # build app
pnpm build # set process.env.ANALYZE to true to see dependency bundle information
pnpm test # run Jest tests
pnpm cypress # run Cypress
pnpm storybook # run Storybook
👷 To-Do
- Add example env
- [] Add static chatbot as a playful experience
- Finish adding Journal entries (for now, but there may be more in the future)
- Finish adding static content in other Programs
- [] Complete styling for all components
- [] Write unit tests for all components
- [] Write full E2E test
- [] Add all components to Storybook
- [] (Optional) Add to-do list with Jotai/Zustand as Sticky Notes alternative
- [] (Optional) Add MS Paint clone
- [] (Optional) Convert react-draggable to @dnd-kit/core
👤 Author
Samuel Yusuf
- Github: @Goggwell
📜 License
This application is licensed under the Apache-2.0 license.
🎉 Show your support
Give a ⭐️ if you like this project!