OneAcademy is an application providing online learning content in the form of videos. The platform offers accessible learning content either for free or through a subscription model. There are two user roles : admin and regular user. The admin role involves determining which courses will be available. On the other hand, users can access learning videos after making payments.
- Manage Category Course (CRUD)
- Manage Course (CRUD)
- Manage Chapter Course (CRUD)
- Manage Material Course (CRUD)
- View User Transaction History
- View available courses
- Filter and search courses
- View course details
- Purchase a course
- Watch materials from purchased courses
- Check the progress of watched courses
- Manage profiles
- Prisma ORM : Object Relational Mapping
- PostgreSQL : Relational Database
- Railway - Deployment Branch Staging
- Google Cloud Platform - Cloud Platform Deployment Branch Master
- Node JS : JavaScript Runtime Environment
- Express : Node JS Framework
- Imagekit.io : Image Storage
- Nodemailer : Send Email
- JWT : Authentication
- GIT : Version Control
- Axios : Fetch API
Clone Repository
https://github.com/dimasz555/OneAcademyAPI.gitInstall the dependencies and devDependencies and start the server.
npm install
npm run dev.env.example is the environment configuration file used in this project, containing a list of environment variables that must be set in the actual .env file.
List of Environment Variables :
- PORT= PORT Server
- DATABASE_URL= URL database
- IMAGEKIT_PUBLIC_KEY= Public key to connect with imagekit
- IMAGEKIT_SECRET_KEY= Secret key to connect with imagekit
- IMAGEKIT_URL_ENDPOINT= URl to connect with imagekit
- EMAIL_USER= Email to connect with nodemailer (send email)
- EMAIL_PASSWORD= Password application to connect a nodmailer (send email)
