Disclaimer: This is a project for demo purposes.
It uses following stack:
Backend:
- PostgreSQL database
- Prisma (ORM)
- ApolloServer(with Express plugin)/GraphQL
Frontend:
- React
- ReactQuery / GraphQL
- Styled Components
- ApolloClient
- Auth0
- Typescript
- Upload articles (auth required)
- Post comments (auth required)
- Read articles in markdown format
- Authentication via auth0
- [] Persist authentication in localstorage
- [] Get article icons from database
- [] Add authorization for backend
- Add timestamps to dates
- Invalidate stale data in mutations Link -> fix the need to leave page and revisit to see the new mutations
- Improve security for uploads against html injection attacks --> React already does a great job, therefore not necessary
- [] Login redirects to previous page in history (same with logout)
- [] Proper usermanagement in backend
- [] Add image support for markdown
- [] Add storybook to test new components
- [] Add unittests
- [] Add E2E-tests with Cypress for example
- [] Introduce lint rules
- [] Add proper types
- [] Improve project structure Atomic Design Methodology
- [] Add different language support with i18n
- [] Add CMS (Lokalise)
- [] Add mobile support
- [] Global statemanagement with Redux
- [] Improve code quality and readability