|
| 1 | +# Superwise Frontend |
| 2 | + |
| 3 | +This is the frontend application for the Superwise project, built with Nuxt 3, Vue 3, Pinia, and TailwindCSS. It provides a modern, responsive interface for students and supervisors to manage supervision requests, profiles, and onboarding. |
| 4 | + |
| 5 | + |
1 | 6 | ## Tech stack |
2 | | -- **Nuxt** framwork for Vue |
| 7 | +- **Nuxt** framework for Vue |
3 | 8 | - **Vitest** for testing |
4 | | -- **I8ln** for localisation |
5 | | -- **Pinia** for state managment |
| 9 | +- **I18n** for localisation |
| 10 | +- **Pinia** for state management |
6 | 11 | - **DaisyUI** for css designs |
7 | 12 |
|
| 13 | +## Features |
| 14 | + |
| 15 | +- **Authentication:** Secure sign-in and sign-out using Clerk. |
| 16 | +- **Role-based Dashboards:** Separate dashboards for students and supervisors. |
| 17 | +- **Supervision Requests:** Students can send, withdraw, and track supervision requests; supervisors can accept, reject, and manage them. |
| 18 | +- **Profile Management:** Users can edit their profiles and manage tags/interests. |
| 19 | +- **Onboarding:** Guided onboarding flows for both students and supervisors. |
| 20 | +- **Responsive Design:** Optimized for both desktop and mobile devices. |
| 21 | +- **Localization:** Multi-language support using Vue I18n. |
| 22 | +- **State Management:** Uses Pinia for global state and store management. |
| 23 | +- **API Integration:** Communicates with the backend via RESTful API endpoints. |
| 24 | + |
| 25 | +## Project Structure |
| 26 | + |
| 27 | +- `pages/` — Main application pages (student, supervisor, onboarding, etc.) |
| 28 | +- `components/` — Reusable Vue components (cards, modals, navigation, etc.) |
| 29 | +- `stores/` — Pinia stores for state management |
| 30 | +- `plugins/` — Nuxt plugins (e.g., Clerk, FontAwesome) |
| 31 | +- `middleware/` — Route guards and global middleware |
| 32 | +- `server/` — Nuxt backend API routes and server logic |
| 33 | +- `assets/` — Static assets (images, styles) |
| 34 | +- `locales/` — Localization files |
| 35 | + |
| 36 | +## Getting Started |
| 37 | + |
8 | 38 | ## Installation and running |
9 | 39 |
|
10 | | -1. Clone the repository |
11 | | -2. Change into the frontend directory |
| 40 | +1. **Clone the repository to local directory** |
| 41 | +2. **ensure you are in the Frontend directory** |
12 | 42 |
|
13 | 43 | ```bash |
14 | | -cd FeMatchMaker |
| 44 | +cd Frontend |
15 | 45 | ``` |
16 | 46 |
|
17 | | -3. Install dependencies: |
| 47 | +3. **Install dependencies**: |
| 48 | + |
18 | 49 | ```bash |
19 | 50 | npm install |
20 | 51 | ``` |
21 | | -4. Run the application |
22 | | -```bash |
23 | | -npm run dev |
24 | | -``` |
25 | 52 |
|
26 | | -## Testing with PWA |
27 | | -The PWA module is not fully compataibile with hot module replacement due to caching and other "middle man" functionalities. As a result whenever testing with PWA run the following command to boot the applicaiton |
| 53 | +4. **Environment Variables:** |
| 54 | + |
| 55 | +Copy the `.env.example` to an `.env` file in the root directory and ensure all the environment variables are set correctly. You can reach out to the admin for the secret keys. |
| 56 | + |
| 57 | +5. **Run the application** |
28 | 58 | ```bash |
29 | | -npm run generate-preview |
| 59 | +npm run dev |
30 | 60 | ``` |
31 | 61 |
|
32 | | - |
33 | 62 | ## Testing |
34 | 63 | To Run all the test in the application, run the command |
35 | 64 | ```bash |
|
0 commit comments