To get everything setup, jump to: Vue 3 + Typescript + Vite
There will be no pages rendering user data. Users can see other users on the leaderboard page, but they cannot see anything else about the user.
- Insert problem statements into firebase database
- Pages
- Finish the dashboard page
- Show list of problems with difficulty tags and problem type tags
- Add in difficulty filtering (low priority)
- Add in tag filtering (low priority)
- Show user's points
- Show their rank
- Show list of problems with difficulty tags and problem type tags
- Problem page
- Show problem statement
- Show past user submissions to problem
- Show people who have solved the problem
- Show problem status after submission
- Submission page
- Code editor
- Submission should redirect to problem page
- Make API request to JDoodle API/Judge0 API
- Leaderboard page
- Show list of users with points (users are not clickable)
- Finish the dashboard page
This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 <script setup>
SFCs, check out the script setup docs to learn more.
- VS Code + Volar (and disable Vetur) + TypeScript Vue Plugin (Volar).
TypeScript cannot handle type information for .vue
imports by default, so we replace the tsc
CLI with vue-tsc
for type checking. In editors, we need TypeScript Vue Plugin (Volar) to make the TypeScript language service aware of .vue
types.
If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a Take Over Mode that is more performant. You can enable it by the following steps:
- Disable the built-in TypeScript Extension
- Run
Extensions: Show Built-in Extensions
from VSCode's command palette - Find
TypeScript and JavaScript Language Features
, right click and selectDisable (Workspace)
- Run
- Reload the VSCode window by running
Developer: Reload Window
from the command palette.