Building My Final Year Project
Shipping your first production project is a milestone. Here's what I learned from mine.
π― Project Overview
For my final year project, I developed the CS One Stop Portal β a centralized web application designed for Computer Science students and lecturers. The goal was to create a single platform for sharing resources, managing announcements, organizing collaborations, and enhancing academic communication.
This project combined modern web technologies with practical university workflows, focusing on both functionality and user experience.
π§ Tech Stack
The system was built using a combination of modern technologies that ensured scalability, security, and maintainability:
- Frontend: Next.js with Tailwind CSS and shadcn/ui for a clean and responsive interface
- Backend: Node.js using tRPC for type-safe APIs
- Database: PostgreSQL (hosted on Neon.tech) with Prisma ORM
- Authentication: Clerk Auth for secure user management
- File Storage: Amazon S3 for resource and file sharing
- Hosting: Vercel for the frontend and Railway for backend deployment
βοΈ Core Modules
The system was divided into several core modules:
- User Management β Handles registration, authentication, and role-based access (student, lecturer, admin).
- File Sharing & Resources β Allows uploading, updating, deleting, versioning, and sharing files or folders.
- Announcements β Lets lecturers and admins broadcast messages to selected groups or all users.
- Collaboration & Discussion β Enables students to form groups, chat, and assign tasks.
- Dashboard β Summarizes key information for each user role, such as recent uploads or announcements.
π§© System Design
I started with a System Requirement Design (SRD) report outlining both functional and non-functional requirements β covering aspects like performance, scalability, and security.
The backend was designed using a modular architecture, with each feature represented as a separate router in tRPC.
For the database schema, I followed normalization principles and enforced referential integrity using Prisma relationships.
Hereβs a simplified structure:
π§ͺ Testing & Evaluation
I prepared a Testing Report that included test cases for each module, such as:
- Uploading and versioning files
- Assigning user roles
- Creating and viewing announcements
- Group collaboration and messaging
Each test case was validated using both manual testing and API endpoint checks via Postman.
π‘ Lessons Learned
- Start with a solid database schema β It prevents most issues later in development.
- tRPC is a game changer β Type-safe APIs speed up debugging and ensure consistency between frontend and backend.
- Clerk integration was straightforward and saved a lot of time managing authentication flows.
- UI/UX consistency matters β Tailwind and shadcn/ui helped me maintain a professional look across pages.
- Deploy early β Testing your app in a production-like environment reveals hidden bugs you wonβt find locally.
π The Result
By the end of the semester, the portal became a fully functional platform where users could register, upload files, post announcements, and collaborate seamlessly.
It not only met all the academic requirements but also served as a real-world ready application that could be scaled for departmental use.
π Conclusion
Building the CS One Stop Portal taught me the entire lifecycle of a software project β from requirement analysis to deployment and testing.
It strengthened my skills in full-stack development, system design, and project management.
If youβre starting your final year project soon, my advice is simple: plan early, build consistently, and test often.
The journey is tough, but the satisfaction of seeing your project live is worth every line of code.