
Pixel Sınav
Pixel Sınav is a web platform designed for students preparing for exams. You can easily access exam-oriented questions and solutions on this platform. Course materials are also available.
Pixel Sınav: My Most Comprehensive Learning Project
Hello, I’m Poyraz Avsever. As part of advancing my software development journey, I created a project called Pixel Sınav to improve my technical skills and build something meaningful.
Pixel Sınav is a comprehensive educational platform built with modern web technologies, where teachers can create course content and students can track their learning progress.
In this article, I will share the development journey of this project, the technologies I used, the challenges I faced, what I learned, and my future plans.
Purpose and Background
There were two main motivations behind starting this project:
- I wanted to build higher-quality, more scalable, and technically challenging projects.
- I wanted to learn backend-focused technologies such as NestJS and Docker.
Additionally, my personal interest in educational technologies and my desire to contribute to this field helped shape the concept of Pixel Sınav. With the increasing digitalization in education, I aimed to build a platform that brings valuable learning content to users.
Why an Educational Platform?
EdTech aligns with my goals for personal growth while also generating social value. The idea of a system where teachers can easily produce content and students can learn at their own pace felt both motivating and technically challenging.
Through this project, I had the opportunity to apply many frontend and backend concepts in a practical way.
Technology Stack
While planning the tech stack, I decided to stay within the JavaScript ecosystem. This allowed me to use technologies like Next.js and NestJS together and build both frontend and backend using TypeScript.
Core Technologies
Technology | Icon | Description |
---|---|---|
Next.js | A React-based, server-side rendering web framework | |
React | A component-based UI development library | |
TailwindCSS | Utility-first CSS framework for building custom designs | |
NestJS | A TypeScript-based progressive Node.js framework | |
MongoDB | A scalable NoSQL document database | |
TypeScript | A type-safe superset of JavaScript | |
Docker | Containerization technology to run applications in isolated environments | |
Jest | A JavaScript testing framework |
Other Libraries
- Framer Motion – Smooth animation library for React
- React Markdown – Markdown rendering support
- Chart.js + react-chartjs-2 – For student performance visualizations
- React Hot Toast – Lightweight notification system
Design Process
For UI/UX inspiration, I referenced the platform Codedex. Its color palettes, clean typography, and simplicity greatly influenced my design choices.
I designed the UI myself and focused on:
- Proper color contrast
- Readable typography
- Consistent spacing and layout
- Mobile responsiveness with a flexible grid system
Frontend Code: GitHub - PixelSinav-Frontend
Backend Code: GitHub - PixelSinav-Backend
User Roles and Structure
Pixel Sınav has two main user roles:
- Teacher: Can create lessons, add content, and view student progress
- Student: Can enroll in lessons, read content, and track their own progress
Authentication, authorization, and role-based endpoints were implemented accordingly.
Development Process
Getting Started
I started with the frontend. The first step was to build the authentication system, including login, registration, and JWT-based session handling. After that, I moved to the teacher panel and developed the lesson creation module.
Backend Integration
I learned NestJS from scratch. The biggest challenges were understanding modular architecture and creating structured API documentation with Swagger.
What I accomplished quickly:
- User registration and login
- Secure token-based authentication with JWT
- Email verification system
- Lesson creation, listing, and deletion
- Filtering lessons by teacher
Authentication and Authorization
JWT-based authentication was implemented in the NestJS backend. Protected routes were created based on user roles, and Swagger/OpenAPI was used to generate API documentation.
Sample Endpoints
POST /auth/register
– Register a new userPOST /auth/login
– Login and receive tokenPOST /lessons
– Create a lesson (teacher only)GET /lessons/teacher/:id
– Get lessons by teacher ID
Testing, Validation, and Security
- Validation Pipe: All requests are validated using
class-validator
- Jest: Unit and integration tests are written using Jest
- Rate Limiting: Anonymous users have a limited request quota per hour
What I Learned
This project helped me gain hands-on experience in:
- Building robust API architectures with NestJS
- Using MongoDB Aggregation Framework for advanced filtering
- Applying Clean Architecture principles in backend development
- Improving responsive design skills on the frontend
Future Plans
I intend to continue developing this project. Some of my roadmap items include:
- Developing a mobile app using React Native
- Adding advanced exam result analytics
- Implementing real-time notification features
- Creating an admin panel and reporting system
Final Thoughts
Pixel Sınav is more than just a project for me. It’s a milestone that represents how far I’ve come and what I can build when I challenge myself.
If you're on a similar journey, feel free to clone the project, contribute to it, or simply star it on GitHub.
Useful Links
Thank you for reading.