Acer Academy is on a rapid expansion trajectory, seeking to enhance its existing operational procedures while venturing into the development of an online learning platform. The primary goal of AcerTech is to reduce inefficiencies, streamline processes, and ensure preparedness for unexpected disruptions, such as the challenges posed by the COVID-19 pandemic. AcerTech is designed to complement Acer Academy's traditional in-person instructional sessions, aiming to advance and augment students' educational experiences.
Note: This project was created for IS4103 Information Systems Capstone Project, in collaboration with a tuition centre chain.
✨ Visit our project website! ✨
AcerTech consists of three distinct front-end systems tailored to cater to the specific needs of different stakeholders:
The Teacher Course Management System is designed to empower Acer Academy's educators. This system provides teachers with a comprehensive suite of functionality to efficiently administer courses, engage with students, and track student academic progress. Teachers can seamlessly manage course content, assignments, quizzes, schedule classes, and interact with students to create a dynamic and engaging learning environment beyond regular lesson times.
The Student Learning System is focused on enhancing the academic experience for Acer Academy's students and their parents. This system enables students to navigate their online learning with ease, allowing them to monitor their academic progress and access vital learning resources, including assignments and quizzes. Additionally, it simplifies class booking and provides secure transaction capabilities for the purchase of class packages.
Acer Academy's administrators play a pivotal role in overseeing the institution's operations. The Admin Management System equips them with the necessary tools for efficient management, covering tasks such as center and employee/student profile management, transaction oversight, and promotional activities.
- Adaptive learning quiz
- QR code for attendance
- WhatsApp Business integration
- Stripe integration
- Rich text editor
Other core features:
- Question bank & quizzes
- Score analytics
- Class scheduling
- Booking system
- Payments for class credits
- Frontend Framework: React and Next.js
- Backend Framework: Express
- Database: PostgreSQL
- ORM (Object-Relational Mapping): Prisma
-
Create a PostgreSQL database locally:
-
Create a
.env
file in the root folder that contains:DATABASE_URL="postgresql://[username]:[password]@localhost:5432/[databaseName]" PORT=8000
- Replace
[username]
,[password]
, and[databaseName]
with your PostgreSQL credentials. - If your PostgreSQL port number is not the default
5432
, please update the database URL accordingly.
- Replace
-
Make a copy of that
.env
file, and put it inapps/backend
:- [Optional: For integration with Stripe and Whatsapp Business sandbox environments]
To the
apps/backend/.env
file, add:
STRIPE_API_KEY=[your stripe API key] STRIPE_ENDPOINT_SIGNING_SECRET=[your stripe endpoint signing secret] WHATSAPP_TOKEN=[your whatsapp token] MY_PHONE_NUMBER=[your target phone number] WHATSAPP_TEST_PHONE_NUMBER_ID=[your whatsapp test phone number ID]
- The paths of the two
.env
files should be.env
andapps/backend/.env
- [Optional: For integration with Stripe and Whatsapp Business sandbox environments]
To the
-
In the root folder, run:
yarn npx prisma migrate dev
-
To start the system, run:
nx run-many --target=serve --all --maxParallel=100
-
Preload accounts + sample questions and quizzes into the question bank by running:
node apps/backend/src/utils/quizQuestionsGenerator.js
in the terminal
-
To access the 3 different systems:
- Admin: http://localhost:3001/
- Student: http://localhost:3000/
- Teacher: http://localhost:3002/
-
Login to Admin system using superadmin:
- Email: [email protected]
- Password: password
-
Note:
- If you want to test Reset Password, you have to use a real Gmail account when signing up.